5

次のxmlファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <corners android:radius="10dp"/>
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape>

ご覧のとおり、角を丸くした形だけです。次のように、アクティビティ レイアウトの背景に使用します。

android:background="@drawable/rounded_corners"

ファイル内の形状は現在白に設定されています。異なるレイアウトでは、異なる色が必要です。色ごとに異なる形状の xml ファイルを作成する必要がありますか? 背景に送信する色をレイアウトで指定する方法が必要です。そうすれば、必要な色に同じxmlを使用できます。

ありがとう。

4

1 に答える 1

3
Do I need to create a different shape xml file for each color?
  • はい、レイアウトのxmlファイル自体から異なるレイアウトファイルに異なる色を適用したい場合
  • いいえ、 java (Activity) ファイルから別のレイアウト ファイルに別の色を適用する場合。

オプション 2 の解決策:

//シェイプ ドローアブル (rounded_corners.xml)

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <corners android:radius="10dp"/>
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape>

//レイアウトファイル

        <Button 
            android:id="@+id/mButton"
            ...
            android:background="@drawable/rounded_corners"
            />

//java (アクティビティ) ファイル

Button mButton = (Button) findViewById(R.id.mButton); 
ShapeDrawable rounded_corners = (ShapeDrawable )mButton.getBackground();
rounded_corners.getPaint().setColor(Color.RED);

参考になれば幸いです!!

于 2013-05-31T13:14:08.887 に答える