2017-06-23 5 views
1

私はしばらくの間、アンドロイドで作業してきましたが、何度も直面する共通の問題があります。上記の例では、両方の背景描画可能見ることができるよう設定可能な背景drawable

view with same style but with solid colour and border as green and dark green respectively

view with same style but with solid colour and border as grey and dark grey respectively

:問題は、iがビューになど背景の背景描画可能を割り当てる複数のビューが存在していますビューは同じですが、両方の背景ドロワブルXMLファイルの違いは、ソリッドとストロークカラーのみです。私は単なる抽象的な背景drawableを作成し、各ソリッドカラーとストロークのカラーバリエーションごとに新しいdrawableを作成するのではなく、xmlとidからコンポーネントのカラーを変更するだけです。

+0

あなたはそのドロアブルをJavaで参照して、これまでに何をしたいのですか? ---------------------------- ---------------- final GradientDrawable shape =(GradientDrawable)bgDrawable.findDrawableByLayerId(R.id.shape_id); shape.setColor(ContextCompat.getColor(this、R.color.white)); – MKY

+0

xmlを使用して別の方法がありますか? –

答えて

0

これはXMLでは不可能です。ただし、Javaを使用することは可能です。

ShapeDrawable shapeDrawable = (ShapeDrawable) ContextCompat.getDrawable(getActivity(), R.drawable.name); 
shapeDrawable.getPaint().setColor(ContextCompat.getColor(mContext,R.color.colorToSet)) 
関連する問題