2017-08-29 18 views
0

私はシークバーの高さが16dpです。Seekbar progressdrawableがAndroid Mの下で正しく動作しない

minHeight="16dp" 
maxHeight="16dp" 

これで、カスタムプログレスdrawableを使用する必要があります。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@android:id/background"> 
    <shape android:shape="rectangle"> 
     <solid android:color="xxx"/> 
     <corners android:radius="6dp"/> 
    </shape> 
</item> 

<item 
    android:id="@android:id/secondaryProgress" 
    android:bottom="4dp" 
    android:left="4dp" 
    android:right="4dp" 
    android:top="4dp"> 
    <clip> 
     <shape android:shape="rectangle"> 
      <solid android:color="xxx"/> 
      <corners android:radius="4dp"/> 
     </shape> 
    </clip> 
</item> 

<item 
    android:id="@android:id/progress" 
    android:bottom="4dp" 
    android:left="4dp" 
    android:right="4dp" 
    android:top="4dp"> 
    <clip> 
     <shape android:shape="rectangle"> 
      <solid android:color="xxx"/> 
      <corners 
       android:radius="4dp"/> 
     </shape> 
    </clip> 
</item> 

見ての通り、私はprogresssecondaryProgressを挿入するためにlefttoprightbottomを使用しています。これは、しかしアンドロイドM、porgressとsecondaryProgressの下、アンドロイドM上にうまく機能

backgroundアイテムがprogresssecondaryProgressによって覆われている他の単語でbackgroundを満たします。 しかし、進捗状況と二次的な進捗状況をバックグラウンド項目より小さくしたい。

答えて

0

ソリューションがあります:それはAPI 23の下のxmlにleftrighttopbottomを設定しても無駄だ理由

LayerDrawable drawable = (LayerDrawable) mSeekBar.getProgressDrawable(); 
// secondaryProgress 
drawable.setLayerInset(1, padding, padding, padding, padding); 
// progress 
drawable.setLayerInset(2, padding, padding, padding, padding); 

誰も説明できますか?

関連する問題