android背景选择器selector的2种用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
android背景选择器selector的2种用法(button控件)
第一种:Xml配置方式
1.先将图片拷贝到drawable下面,再在下面建立xml文档:drawable/test.xml,格式如下:
2.文档定义好后,在main.xml下的button属性中增加下面代码:
android:focusable="true"
android:background="@drawable/test"
第二种:代码编写方式
先将图片拷贝到drawable下面,在代码中定义一类如下:
public class myActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.main);
Integer[] mButtonState = { R.drawable.p1,R.drawable.p2};
MyButton myButton = new MyButton(this);
Button btn = (Button)findViewById(R.id.button1);
btn.setBackgroundDrawable(myButton.setbg(mButtonState));
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(myActivity.this, "It is ok!", Toast.LENGTH_SHORT).show();
}
});
}
class MyButton extends View
{
public MyButton(Context context)
{
super(context);
}
// 以下这个方法也可以把你的图片数组传过来,以StateListDrawable来设置图片状态,来表现button的各中状态。未选
// 中,按下,选中效果。
public StateListDrawable setbg(Integer[] mImageIds) {
StateListDrawable bg = new StateListDrawable();
Drawable normal = this.getResources().getDrawable(mImageIds[0]);
Drawable selected = this.getResources().getDrawable(mImageIds[1]);
bg.addState(View.PRESSED_ENABLED_STATE_SET, selected);
bg.addState(View.ENABLED_STATE_SET, normal);
bg.addState(View.FOCUSED_STATE_SET, selected
);
bg.addState(View.EMPTY_STATE_SET, normal);
return bg;
}
}
}