我将一个图像设置为Button backgroud,但当单击它时,Button没有高亮显示。有没有办法解决这个问题。
发布于 2010-11-09 16:59:12
为了让您找到正确的资源,这里是StateList Drawable的文档。您只需在res/drawable
子目录中创建并定义它,并将其设置为按钮背景即可。
发布于 2010-11-09 17:55:55
如果您正在使用
<Button
------------------
android:background="@drawable/youimage"
>
然后,更好的方法是声明new,一个新的xml。使用该图像,您可以为每个event state指定图像。正如屋大维所说
您可以将此xml设置为您的背景
如果您的xml是'res/drawable/abc.xml‘,则将背景设置为
android:background="@drawable/abc"
您也可以使用ImageButton
<ImageButton
----------------------
android:src="@drawable/youimage"
/>
ImageButton的好处是,不需要不同的图像来突出显示。
发布于 2012-10-22 20:58:44
尝试这样做可以获得穷人的高光效果,而不需要制作多个图像副本。将alpha值0.8设置为所需的值:
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageButton;
public class EAImageButton extends ImageButton {
public EAImageButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public EAImageButton(Context context, AttributeSet attrs){
super(context,attrs);
}
public EAImageButton(Context context, AttributeSet attrs, int defStyle){
super(context,attrs,defStyle);
}
public void setImageResource (int resId){
super.setImageResource(resId);
}
@Override
public boolean onTouchEvent(MotionEvent e){
if(e.getAction() == MotionEvent.ACTION_DOWN){
this.setAlpha((int)( 0.8 * 255));
}else if(e.getAction() == MotionEvent.ACTION_UP){
this.setAlpha((int)( 1.0 * 255));
}
return super.onTouchEvent(e);
}
}
https://stackoverflow.com/questions/4131656
复制相似问题