私は、やや活動のデザインをクローン化しようとしています Android UIデザインの一連のスライドから 。しかし、私は非常に簡単な作業で問題を抱えています。
画像に示すようにレイアウトを作成しました。ヘッダーはTextView
内のRelativeLayout
です。今私はRelativeLayout
の背景色を変えたいのですが、どうやってそれを理解することができないようです。
XMLファイルのRelativeLayout
タグでAndroid:background
プロパティを設定できることはわかっていますが、それを何に設定すればよいのでしょうか。複数の場所で使用できる新しい色を定義したいです。それはdrawable
ですか、それともstring
ですか?
それに加えて、私は欠けているに違いないというEclipse Android UIデザイナーの中からこれを行うための非常に単純な方法があると期待しますか?
これは最大で数回のクリックで実行されるアクティビティであるはずなので、私は現在少しイライラしています。だから、どんな助けでもとても感謝しています。 :)
単純なカラーリソース を使用できます。通常はres/values/colors.xml
内に指定されます。
<color name="red">#ffff0000</color>
そしてAndroid:background="@color/red"
を通してこれを使います。この色は他の場所でも使用できます。テキストの色として。同じ方法でXMLでそれを参照するか、getResources().getColor(R.color.red)
を介してコードでそれを取得します。
背景として drawable resource を使うこともできます。これにはAndroid:background="@drawable/mydrawable"
を使います(つまり9patchドロアブル、通常のビットマップ、シェイプドロアブルなど)。
上記の答えはいいです。必要に応じてプログラムでこのようにすることもできます。
まず、レイアウトにはIDが必要です。次の+id
行をres/layout/*に書いて追加してください。xml
<RelativeLayout ...
...
Android:id="@+id/your_layout_id"
...
</RelativeLayout>
次に、Javaコードで次のように変更します。
RelativeLayout rl = (RelativeLayout)findViewById(R.id.your_layout_id);
rl.setBackgroundColor(Color.RED);
これとは別に、colors.xmlで定義されている色がある場合は、プログラムでも実行できます。
rl.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.red));
あなたの色にはAndroid:background="#DC143C"
や他の _ rgb _ の値を使うことができます。述べたように、私はそれをこの方法で使っても問題ない ここ
の
res/values/colors.xml.
<color name="red">#ffff0000</color>
Android:background="@color/red"
例は私にはうまくいきませんでしたが、
Android:background="#(hexidecimal here without these parenthesis)"
属性として相対的なレイアウト要素で私のために働いた。
色をすばやく変更したい場合(および16進数を記憶させていない場合)、Androidにはプリセット色がいくつか用意されています。
Android:background="@Android:color/black"
15色ありますので、すぐに試してみることができ、追加のファイルを設定する必要はありません。
Values/colors.xmlファイルを設定し、上で説明したようにストレートの16進数を使用してもまだうまくいきます。
4つの可能な方法は、あなたが必要とするものを使います。
val ll = findViewById<LinearLayout>(R.id.your_layout_id)
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white))
<LinearLayout
Android:background="@{@color/white}"
_または_ /より便利なステートメント -
<LinearLayout
Android:background="@{model.colorResId}"
<LinearLayout
Android:background="#FFFFFF"
<LinearLayout
Android:background="@color/white"
LinearLayout ll = (LinearLayout) findViewById(R.id.your_layout_id);
ll.setBackgroundColor(ContextCompat.getColor(this, R.color.white));
コトリン
linearLayout.setBackgroundColor(Color.rgb(0xf4,0x43,0x36))
または
<color name="newColor">#f44336</color>
-
linearLayout.setBackgroundColor(ContextCompat.getColor(Vista.context, R.color.newColor))
とりわけ答えは静的です。私は動的な答えを出すと思いました。同期する必要がある2つのファイルは、レイアウトを持つ相対的なfoo.xml
と、このactivity_bar.Java
に対応するJavaクラスに対応するR.layout.foo
です。
foo.xml
で、レイアウト全体のIDを設定します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout Android:id="@+id/foo" .../>
そしてactivity_bar.Java
でonCreate()
の色を設定します。
public class activity_bar extends AppCompatActivty {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.foo);
//Set an id to the layout
RelativeLayout currentLayout =
(RelativeLayout) findViewById(R.id.foo);
currentLayout.setBackgroundColor(Color.RED);
...
}
...
}
これが役に立つことを願っています。