76

アプリからストロークの色を変更する必要があります。ユーザーは背景色を変更できるので、ボタンのストローク (アウトライン) も変更できるようにする必要があります。すでにドローアブルに設定されているため(以下のサンプル)、これを変更する方法が見つかりませんでした。このような他のすべての質問は、XML ファイルを使用するように言われているようです....しかし、それでは動的にすることはできません。助けてくれてありがとう!

ストロークの色をユーザー定義の色に変更する必要があります。州とは何の関係もありません。

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="#ffffffff"/>    
      <stroke
                android:width="3dp"
                android:color="@color/Dim_Gray" />  <<<<--- This is what I need to change


    <padding android:left="10dp"
             android:top="10dp"
             android:right="10dp"
             android:bottom="10dp"
             /> 

    <corners android:bottomRightRadius="12dp" android:bottomLeftRadius="12dp" 
     android:topLeftRadius="12dp" android:topRightRadius="12dp"/> 

</shape>
4

6 に答える 6

0

実行時に形状の境界線の色を変更するで同様の質問に答えました

f20k によって提案された同じソリューションに似ていますが、私の場合、ドローアブルは ShapeDrawable ではなく GradientDrawable でした。

それが機能するかどうかを確認してください...

于 2013-02-23T19:53:50.913 に答える
0

(ColorStateList ではなく) StateLists を使用してみてください。見てみましょう: http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

ShapeDrawableプログラムで a (またはあなたの例では a)を作成しRoundRectShape、ボタンのsetBackgroundDrawable

于 2011-01-23T09:59:50.177 に答える
-1

おそらく、ボタンが押された/フォーカスされた/有効になったかどうかに基づいて色を変更できるカラーステートリストを参照しています。

于 2011-01-23T06:56:07.150 に答える