以一个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();
}
});