Android “如何使按钮看起来像”;目测压下;单击/按下时
现在,我的对话框中有一个功能按钮,其中:Android “如何使按钮看起来像”;目测压下;单击/按下时,android,android-layout,Android,Android Layout,现在,我的对话框中有一个功能按钮,其中: protected Dialog onCreateDialog(...) { ... final Button storeButton = (Button) dialog.findViewById(R.id.btn_store); storeButton.setOnClickListener(new Button.OnClickListener() { @Override publi
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文件,因为我试图避免修改它。我试图查看视图的方法,但找不到任何方法。谢谢 只需在
onClick
方法中将其背景替换为新的draawable
,或布局文件,您可以在其中创建“按住”效果。例如:
your_button.setDrawableByLayerId(R.id.imagen_fondo, getResources().getDrawable(new_drawable));
如果您只想更改按钮的颜色以显示其已按下(这也适用于长时间按下): 实现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;
}
将数字值调整为所需的颜色