android 按钮顶级效果_Android 源码之button高亮效果
android默認的button在點擊以后有默認的高亮效果,但是默認的button比較丑,要替換成自己的按鈕背景,采用的方法是:
button.setBackgroundDrawable(drawable);//or
button.setBackgroundResource(resid);
可是這樣就沒有了點擊以后的高亮效果。要實現(xiàn)高亮的效果,網(wǎng)上采用的是在XML中配置的方法:
android:drawable="@drawable/highlight"?/>
以上代碼沒試過,暫且記錄著,以后試過了補完具體怎么弄。
我在實際開發(fā)中,無法使用XML來配置,需要用代碼實現(xiàn)點擊高亮的效果。網(wǎng)上沒找到現(xiàn)成的,找了一下發(fā)現(xiàn)有StateListDrawable就是起到這個作用,一句話就是在不同的狀態(tài)刷不同的drawable。
Button?confirmButton?=?new?Button(this);
confirmButton.setPadding(10,?8,?10,?9);
confirmButton.setText("吧啦吧啦吧啦");
confirmButton.setTypeface(Typeface.MONOSPACE);
confirmButton.setTextColor(Color.WHITE);
confirmButton.setTextSize(20f);
confirmButton.setClickable(true);
confirmButton.setEnabled(true);
ShapeDrawable?normalView?=?new?ShapeDrawable(new?RoundRectangleShape());
ShapeDrawable?pressView?=?new?ShapeDrawable(new?RoundRectangleShape().setColor(0x805c5c5c));
StateListDrawable?stateListDrawable?=?new?StateListDrawable();
stateListDrawable.addState(new?int[]{android.R.attr.state_pressed},?pressView);
stateListDrawable.addState(new?int[]{android.R.attr.state_enabled},?normalView);
confirmButton.setBackgroundDrawable(stateListDrawable);
ViewGroup?mainScreen?=?(ViewGroup)?this.getLayoutInflater().inflate(
R.layout.activity_main,?null);
mainScreen.addView(confirmButton,?new?LayoutParams(
LayoutParams.MATCH_PARENT,?LayoutParams.WRAP_CONTENT));
本文由職坐標整理并發(fā)布,希望對同學們有所幫助。了解更多詳情請關注職坐標移動開發(fā)之Android頻道
總結
以上是生活随笔為你收集整理的android 按钮顶级效果_Android 源码之button高亮效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Java NIO————NIO 简介
- 下一篇: java明文发送_使用java MD5加
