2017-12-15 11 views
0

私はこのコードを試してみました:レイアウト背景の色合いを文字列からプログラムで設定するにはどうすればよいですか?

LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout); 
     someLayout.setBackgroundTintList(context.getResources().getColorStateList(Color.parseColor("#ff8800"))); 

しかし、私はエラーを取得しています:android.content.res.Resources$NotFoundException 私はcolors.xmlでそれを埋め込むことはできませんので、私は、外部ソースからの色の六角を取得しています。 また、バックグラウンドではなく色合いを変更したいので、setBackgroundはオプションではありません。

+0

[プログラムでColorStateListを作成するにはどうすればいいですか?](https://stackoverflow.com/questions/15543186/how-do-i-create-colorstatelist-programmatically) – 0X0nosugar

+0

「可能な重複」とは、どのようにあなたの問題を解決するかを知っているこれを行う方法 " – 0X0nosugar

答えて

0

getColorStateListメソッドはリソースのint idを期待しており、RGBカラーintを渡すので、このようにすることはできません。あなたはこのlink

を以下の色の状態のリストを作成し、このようにそれを設定する必要があります。

.getColorStateList(R.color.your_xml_name) 
+0

ええ、私は考え出したので、私は他の方法を使用しました。 – Krestek

0

は私がgetColorStateListを使用することはできません考え出し()ので、私はそれを行うための別の方法を探しました。私は次のコードを使用して色合いを設定することができた終わり :

LinearLayout someLayout=(LinearLayout)view.findViewById(R.id.someLayout); 
     someLayout.getBackground().setColorFilter(Color.parseColor("#ff8800"), PorterDuff.Mode.SRC_ATOP); 

私はxmlファイルにbackgroundTintプロパティを変更した場合、これは働いていたので、それは私の問題のために最適です。

関連する問題