以一个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();
}
});
本文介绍如何通过设置属性来定制Android中TextView的样式,包括文本颜色、背景、边距、点击效果等,并展示了如何使用状态选择器实现不同的点击状态反馈。
1289

被折叠的 条评论
为什么被折叠?



