现在我的对话框中有一个功能正常的按钮:
protected Dialog onCreateDialog(...) {
...
final Button storeButton = (Button) dialog.findViewById(R.id.btn_store);
storeButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MyClass.this, StoreListViewActivity.class);
startActivity(intent);
}
});
}
单击/长按时,如何按下按钮(即在视觉上按住)?我没有这个类的XML文件,因为我试图避免修改它。我试图查看视图的方法,但我找不到任何方法。谢谢!
答案 0 :(得分:1)
只需将其背景替换为Drawable
方法中的新onClick
或布局文件,您可以在其中创建“按下”效果。例如:
your_button.setDrawableByLayerId(R.id.imagen_fondo, getResources().getDrawable(new_drawable));
答案 1 :(得分:1)
如果您只是想改变按钮的色调以显示它被按下(这也适用于长按):
实现OnTouchListener并覆盖此方法:
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.btn_play:
if (event.getAction() == MotionEvent.ACTION_DOWN)
btnPlay.setColorFilter(Color.argb(100, 37, 169, 208));
else if(event.getAction() == MotionEvent.ACTION_UP)
btnPlay.setColorFilter(Color.argb(0, 0, 228, 253));
break;
case R.id.btnBuy:
if (event.getAction() == MotionEvent.ACTION_DOWN)
btnBuy.setColorFilter(Color.argb(255, 37, 169, 208));
else if(event.getAction() == MotionEvent.ACTION_UP)
btnBuy.setColorFilter(Color.argb(0, 0, 228, 253));
break;
}
return false;
}
将数值调整为所需的颜色。