我有一个按钮,当我点击它时会产生一个缩放动画,我也可以用onTouch事件拖动它。
我希望在第一次触摸后使其无法点击并且此代码可以。在这里OnClick
btnScale.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
v.startAnimation(animScale);
btnScale.setClickable(false);
}});
此代码也帮我拖动它。在这里OnTouch
btnScale.setOnTouchListener(new Button.OnTouchListener(){
public boolean onTouch(View v, MotionEvent me) {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
oldXvalue = me.getX();
oldYvalue = me.getY();
} else if (me.getAction() == MotionEvent.ACTION_MOVE) {
//RelativeLayout rl = (RelativeLayout) findViewById(R.id.background);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(v.getWidth(), v.getHeight());
params.leftMargin = (int) (me.getRawX() - (v.getWidth() / 2));
params.topMargin = (int) (me.getRawY() - (v.getHeight()));
//LayoutParams params = new LayoutParams(v.getHeight(), (int) (me.getRawX() - (v.getWidth() / 2)), (int) (me.getRawY() - (v.getHeight())));
v.setLayoutParams(params);
}
return false;
}});
但是我点击后仍然想要拖动它。然而,当我使它无法点击时,它不能被拖动,因为它也是不可触摸的
编辑:
当我在onClick上使用if else状态作为布尔变量时,我仍然可以点击按钮,我的圆形按钮中会出现一个丑陋的方块。
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#61d5ee">
<item>
<shape android:shape="oval">
<solid android:color="#61d5ee"/>
<corners android:radius="5dp" />
<stroke android:width="4px" android:color="#cdf3fb" />
</shape>
</item>
</ripple>
怎么办?
答案 0 :(得分:1)
创建一个布尔值来说明它是否已启用,手动更改onClick中的状态并更改按钮的设计。在你的Onclick中使用类似的东西:
if(enabled){
do something
}else{
//do nothing
}
你不需要别的,这只是一个例子。 然后......他可以触摸启用和禁用。