您的位置:首页 > 移动开发 > Android开发

Android之代码设置selector

2016-02-02 10:46 537 查看
以一个textView为例:

TextView tv = new TextView(UIUtils.getContext());
tv.setText(data);
tv.setTextSize(16);
tv.setTextColor(Color.WHITE);
tv.setGravity(Gravity.CENTER);
tv.setClickable(true);

int padding = DensityUtil.dip2px(UIUtils.getContext(), 6);
tv.setPadding(padding, padding, padding, padding);

GradientDrawable normalDrawable = new GradientDrawable();
//状态选择器
StateListDrawable stateListDrawable = new StateListDrawable();

normalDrawable.setColor(Color.RED);
normalDrawable.setShape(GradientDrawable.RECTANGLE);
normalDrawable.setCornerRadius(DensityUtil.dip2px(UIUtils.getContext(), 5));

//按下时的drawable
GradientDrawable pressedDrawable = new GradientDrawable();
pressedDrawable.setColor(Color.DKGRAY);
pressedDrawable.setShape(GradientDrawable.RECTANGLE);
pressedDrawable.setCornerRadius(DensityUtil.dip2px(UIUtils.getContext(), 5));
//给状态选择器添加状态
stateListDrawable.addState(new int[]{android.R.attr.state_pressed},pressedDrawable);
stateListDrawable.addState(new int[]{}, normalDrawable);

tv.setBackgroundDrawable(stateListDrawable);

tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(UIUtils.getContext(), data, Toast.LENGTH_SHORT).show();
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息