Android:如何检测用户何时向左触摸视图区域的20%? [英] android: how can I detect when user touch left 20% of view area?
本文介绍了Android:如何检测用户何时向左触摸视图区域的20%?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在活动
中,通过使用
public boolean dispatchTouchEvent(MotionEvent ev)
我怎么知道用户正在触摸向左 Y轴
的边缘区域占20%?
how can I know an user is touching left Y-axis
of 20% edge area?
它应该是通用的,并且应该处理方向。
我不想在此上创建任何隐藏视图。
It should be generic and orientation handled. I don't want to create any hidden view on that.
推荐答案
- 获取设备宽度
- 计算左侧20%的宽度大小(从0到X)
- 使用
event.getX()
- 检查
event.getX()
是否在设备中包含20%的 - Get device width
- Calculate left 20% width size (from 0 to X)
- Use
event.getX()
- Check that
event.getX()
is inside device with 20%
示例:
public class YourActivity extends Activity {
private LinearLayout background;
private float xValue, yValue, leftPersentage;
private int height,width;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
leftPersentage = (width)*20/100;
background = (LinearLayout) findViewById(R.id.background);
background.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
xValue = event.getX();
yValue = event.getY();
Log.d("Values Clicked" , xValue +"and" + yValue);
if(xValue <= leftPersentage){
// perform your task
Log.d("Values Clicked onLeft" , xValue +"and" + yValue);
}
return false;
}
});
}
}
这篇关于Android:如何检测用户何时向左触摸视图区域的20%?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文