seekbar垂直放置_将刻度线对准Android SeekBar
我試圖在Android的SeekBar上放置一些刻度標(biāo)記指示器.我能夠生成帶有刻度線的背景,但是我無(wú)法找到一種方法將刻度線與實(shí)際的SeekBar線對(duì)齊.從屏幕截圖中可以看到,刻度線實(shí)際上在SeekBar行之前開始.
我可以通過反復(fù)試驗(yàn)找到距離,但是我懷疑在每臺(tái)設(shè)備上它都將保持不變.我還注意到線條和背景邊緣之間的空間與拇指滑塊的半徑相同.但是我找不到確定該半徑的方法,并且再次不確定該半徑是否適用于所有設(shè)備.
我知道有可用的自定義搜尋欄,但我試圖避免添加第三方依賴項(xiàng).
解決方法:
這使用getThumb().getMinimumWidth()來(lái)近似于SeekBar的行的開始處的偏移量.它似乎可以工作,但不確定是否可以在所有設(shè)備上使用.
更新:此代碼確實(shí)適用于默認(rèn)情況,但是如果您更改填充,該代碼將中斷.最好使用getPaddingLeft()和getPaddingRight()來(lái)確定滑塊的長(zhǎng)度和位置.這些函數(shù)通常將返回getThumb().getMinimumWidth()/ 2,除非填充或縮略圖已更改. getPaddlingLeft()和getPaddingRight()將始終有效.
Bitmap b= Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
Canvas c=new Canvas(b);
Paint p=new Paint();
p.setColor(Color.WHITE);
int offset=this.getThumb().getMinimumWidth();
float interval=(float)((width-offset*1.0)/24);
for(int i=0;i<25;i++){
float x=i*interval+offset/2;
c.drawLine(x,0,x,height,p);
c.drawText(Integer.toString(i),x,height,p);
}
標(biāo)簽:seekbar,android
來(lái)源: https://codeday.me/bug/20191120/2042580.html
總結(jié)
以上是生活随笔為你收集整理的seekbar垂直放置_将刻度线对准Android SeekBar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8新特性(7)— Base64
- 下一篇: RSA私钥文件(PEM-PKCS#1)解