1

resから色を変更することは可能ですか--colors.xml:

<color name="transparent_color">#00000000</color>

実行時に?

それを変更する理由は、拡張されたEditTextで、backgroundresouceを次のように設定したためです。

        setBackgroundResource(R.drawable.edittext_rounded_corners);

edittext_rounded_corners.xmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/edittext_rounded_corners.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="true"><shape>
            <solid android:color="#FF8000" />
            <stroke android:width="2.3dp" android:color="@color/referenceFrame" />
            <corners android:radius="8dp" />
        </shape></item>
    <item android:state_focused="false" android:state_pressed="true"><shape>
            <solid android:color="#FF8000" />
            <stroke android:width="2.3dp" android:color="#FF8000" />
            <corners android:radius="8dp" />
        </shape></item>
    <item android:state_focused="true" android:state_pressed="false"><shape>
            <solid android:color="#FFFFFF" />
            <stroke android:width="2.3dp" android:color="#FF8000" />
            <corners android:radius="8dp" />
        </shape></item>
    <item android:state_focused="false" android:state_pressed="false"><shape>
            <gradient android:angle="270" android:centerColor="#FFFFFF" android:endColor="#FFFFFF" android:startColor="#F2F2F2" />
            <stroke android:width="0.7dp" android:color="#BDBDBD" />
            <corners android:radius="8dp" />
        </shape></item>
    <item android:state_enabled="true"><shape>
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>

</selector>

また、エラーが発生したときに@ Color/referenceFrameを赤にする方法が必要です。エラー処理はすでに完了しています。参照フレームを変更する方法が必要です。

4

1 に答える 1

1

referenceFrame赤に設定して、新しいドローアブル(またはセレクター、必要なもの)を作成します。このファイルを呼び出しましょうedittext_error.xml

次に、エラーが発生した場合は、EditTextの背景を変更して、新しいファイルを指すようにします。

setBackgroundResource(R.drawable.edittext_error);
于 2012-08-08T07:32:02.640 に答える