![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android CheckBox中設(shè)置padding無(wú)效解決辦法_第1頁(yè)](http://file4.renrendoc.com/view/42b8b3d46becfd1f443ac456acad6305/42b8b3d46becfd1f443ac456acad63051.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android CheckBox中設(shè)置padding無(wú)效解決辦法_第2頁(yè)](http://file4.renrendoc.com/view/42b8b3d46becfd1f443ac456acad6305/42b8b3d46becfd1f443ac456acad63052.gif)
![【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android CheckBox中設(shè)置padding無(wú)效解決辦法_第3頁(yè)](http://file4.renrendoc.com/view/42b8b3d46becfd1f443ac456acad6305/42b8b3d46becfd1f443ac456acad63053.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】AndroidCheckBox中設(shè)置padding無(wú)效解決辦法
AndroidCheckBox中設(shè)置padding無(wú)效解決辦法CheckBox使用本地圖片資源CheckBox是Android中用的比較多的一個(gè)控件,不過(guò)它自帶的button樣式比較丑,通常都會(huì)替換成本地的資源圖片。使用本地資源圖片很簡(jiǎn)單,設(shè)置android:button屬性為一個(gè)自定義的包含selector的drawable文件即可。例如android:button=”@drawable/radio_style”。radio_style.xml定義如下。checked和unchecked分別是選中和未選中時(shí)使用的圖片資源。CheckBox點(diǎn)擊響應(yīng)問(wèn)題當(dāng)CheckBox使用本地的圖片資源后,如果本地圖片很?。▓D片大小需要和布局搭配,很多時(shí)候?yàn)榱私缑娴拿烙^不能使用太大的圖片),而且右側(cè)沒(méi)有文字時(shí),會(huì)導(dǎo)致CheckBox很難被點(diǎn)中。增加點(diǎn)擊區(qū)域,通常的做法是增加padding值,擴(kuò)大控件的外部范圍。我們希望可以通過(guò)設(shè)置CheckBox的padding值,讓圖片的上下左右四個(gè)方向都增加一定的范圍,這樣用戶點(diǎn)擊圖片的響應(yīng)上就不會(huì)有問(wèn)題了。CheckBoxpadding失效問(wèn)題CheckBox分別設(shè)置上、下、左、右和全部四個(gè)方向各20dp的padding后實(shí)際顯示效果如圖所示。這里為了看得清楚,為CheckBox設(shè)置了背景色,并且添加了文字。
從圖示可以看出,CheckBox設(shè)置padding值影響的是實(shí)際上文字到CheckBox邊界的距離,圖片始終在左側(cè)垂直居中的位置。
先看上下padding,當(dāng)設(shè)置上下padding時(shí),由于文字本身距離上下邊界就有一定的距離,如果padding值設(shè)置的不夠,整個(gè)CheckBox區(qū)域根本不會(huì)變化,通過(guò)設(shè)置較大的padding值可以實(shí)現(xiàn)擴(kuò)大CheckBox上下區(qū)域的目的。最后一張圖上下各20dp的padding,這時(shí)可以看到CheckBox高度增加了。但由于中間文字距離上下邊界的距離和CheckBox圖片高度,文字字號(hào),文字內(nèi)部padding等很多因素有關(guān),很難通過(guò)對(duì)上下padding設(shè)置精確控制CheckBox區(qū)域,很可能出現(xiàn)在這個(gè)手機(jī)上高度被拉的很大,而另一個(gè)手機(jī)上根本沒(méi)有效果。
再看左右padding,當(dāng)設(shè)置左右padding時(shí),無(wú)論是左padding還是右padding,影響的只是文字的位置。圖片始終都在整個(gè)CheckBox的左側(cè),對(duì)圖片來(lái)說(shuō),增大的都是右側(cè)區(qū)域。所以設(shè)置的左右padding不能解決CheckBox點(diǎn)擊響應(yīng)的問(wèn)題,不僅會(huì)導(dǎo)致圖片位置偏左,還會(huì)出現(xiàn)點(diǎn)擊左側(cè)區(qū)域無(wú)法點(diǎn)中的情況。
標(biāo)題中所說(shuō)的padding無(wú)效問(wèn)題,實(shí)際上是有效的,只是設(shè)置paddingLeft增加的是右邊區(qū)域,paddingTop和paddingBottom只有設(shè)置較大的值才能看到效果。CheckBoxpadding失效問(wèn)題原因要想知道CheckBoxpadding失效問(wèn)題原因,得要查看Android源碼,CheckBox是繼承自CompoundButton,CheckBox左側(cè)的圖片是在CompoundButton的onDraw()方法中繪制的,onDraw()方法代碼如下,mButtonDrawable就是要繪制的圖片對(duì)應(yīng)的Drawable對(duì)象,可以看到left始終為0,而top位置和Grivity有關(guān)(上述例子中Gravity是居中的)。解決CheckBox點(diǎn)擊響應(yīng)問(wèn)題由于CheckBox和CompoundButton沒(méi)有提供任何方法設(shè)置圖片的位置,要想解決CheckBox點(diǎn)擊響應(yīng)的問(wèn)題似乎唯一的方法就是重寫(xiě)一個(gè)新的控件,然后在onDraw方法中確定圖片位置時(shí)把padding也考慮進(jìn)去。不過(guò)這樣做實(shí)在是太麻煩了。
這里給出另外一種簡(jiǎn)單的方法,那就是將圖片擴(kuò)大。CheckBox點(diǎn)擊響應(yīng)問(wèn)題本身是由于圖片過(guò)小,如果將圖片擴(kuò)大就不存在這個(gè)問(wèn)題了,但前面說(shuō)之所以用小的圖片是為了布局搭配和界面美觀,如果將圖片擴(kuò)大不是又回到最開(kāi)始的問(wèn)題了嗎!
其實(shí)這里說(shuō)的圖片擴(kuò)大,不是將圖片整體放大,而是圖片內(nèi)容不變,在原先的圖片外圍增加透明像素,由于透明像素不可見(jiàn),圖片看起來(lái)的實(shí)際大小仍然和以前一樣,但由于透明像素的存在,CheckBox的區(qū)域也會(huì)隨之增大。
要在圖片外網(wǎng)增加透明像素前提是圖片必須是png格式的,不過(guò)這并不是問(wèn)題,通常資源文件都是png格式的,即使不是png格式的圖片,也可以先轉(zhuǎn)換成png格式,然后再增加透明像素。
增加透明像
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版八年級(jí)道德與法治上冊(cè)聽(tīng)課評(píng)課記錄《7.2服務(wù)社會(huì)》
- 2024-2025學(xué)年八年級(jí)物理全冊(cè)1.3站在巨人的肩膀上練習(xí)含解析新版滬科版
- 技術(shù)員年度工作規(guī)劃
- 公司行政部門(mén)個(gè)人工作計(jì)劃
- 年度幼兒教師個(gè)人工作計(jì)劃
- 物業(yè)客服部工作計(jì)劃范本
- 可調(diào)單價(jià)合同范本
- 知識(shí)產(chǎn)權(quán)授權(quán)協(xié)議書(shū)范本
- 商業(yè)店鋪?zhàn)赓U合同范本
- 紅河衛(wèi)生職業(yè)學(xué)院《物理化學(xué)(II)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年服裝門(mén)店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報(bào)告
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計(jì)》課件-1:Python簡(jiǎn)介與應(yīng)用領(lǐng)域
- 各類(lèi)心理量表大全
- 體育概論(第二版)課件第三章體育目的
- DB11T 1481-2024生產(chǎn)經(jīng)營(yíng)單位生產(chǎn)安全事故應(yīng)急預(yù)案評(píng)審規(guī)范
- 《氓》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修下冊(cè)
- 《網(wǎng)店運(yùn)營(yíng)與管理》第3版 課件全套 白東蕊 第1-11章 網(wǎng)上開(kāi)店概述- 移動(dòng)網(wǎng)店運(yùn)營(yíng)
- 2024年全國(guó)國(guó)家電網(wǎng)招聘之電網(wǎng)計(jì)算機(jī)考試歷年考試題(附答案)
- 化學(xué)元素周期表注音版
評(píng)論
0/150
提交評(píng)論