android中怎么进行控制imageview和textview之间逻辑点击事件
2015-05-15
展开全部
首先设定TextView的clickable属性为true。
可以在布局文件中进行设定,比如:
<TextView
android:id="@+id/phone"
android:clickable="true" --------->设定此属性
android:layout_marginLeft="10dp"
android:layout_below="@id/address"
android:layout_toRightOf="@id/avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="18764563523"
android:textColor="@color/white" />
也可以在java代码中设定:
textView.setClickable(true);
然后绑定事件回调函数:
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//调到拨号界面
Uri uri = Uri.parse("tel:18764563501");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
}
});
3
完成TextView的点击事件绑定!
可以在布局文件中进行设定,比如:
<TextView
android:id="@+id/phone"
android:clickable="true" --------->设定此属性
android:layout_marginLeft="10dp"
android:layout_below="@id/address"
android:layout_toRightOf="@id/avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="18764563523"
android:textColor="@color/white" />
也可以在java代码中设定:
textView.setClickable(true);
然后绑定事件回调函数:
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//调到拨号界面
Uri uri = Uri.parse("tel:18764563501");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
}
});
3
完成TextView的点击事件绑定!
2015-05-15 · 知道合伙人互联网行家
关注
展开全部
textview 应该是不支持 onClick
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private float mPosX;
private float mPosY;
private float mCurrentPosX;
private float mCurrentPosY;
private ImageView imageview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview = (ImageView) findViewById(R.id.imageview);
imageview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// 按下
case MotionEvent.ACTION_DOWN:
mPosX = event.getX();
mPosY = event.getY();
break;
// 移动
case MotionEvent.ACTION_MOVE:
mCurrentPosX = event.getX();
mCurrentPosY = event.getY();
if (mCurrentPosX - mPosX > 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向右");
else if (mCurrentPosX - mPosX < 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向左");
else if (mCurrentPosY - mPosY > 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向下");
else if (mCurrentPosY - mPosY < 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向上");
break;
// 拿起
case MotionEvent.ACTION_UP:
break;
default:
break;
}
return true;
}
});
}
private float mPosY;
private float mCurrentPosX;
private float mCurrentPosY;
private ImageView imageview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview = (ImageView) findViewById(R.id.imageview);
imageview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// 按下
case MotionEvent.ACTION_DOWN:
mPosX = event.getX();
mPosY = event.getY();
break;
// 移动
case MotionEvent.ACTION_MOVE:
mCurrentPosX = event.getX();
mCurrentPosY = event.getY();
if (mCurrentPosX - mPosX > 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向右");
else if (mCurrentPosX - mPosX < 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向左");
else if (mCurrentPosY - mPosY > 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向下");
else if (mCurrentPosY - mPosY < 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向上");
break;
// 拿起
case MotionEvent.ACTION_UP:
break;
default:
break;
}
return true;
}
});
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询