web-dev-qa-db-ja.com

16進数の色の値(#ffffff)を整数値に変換します

サーバーから16進数の色の値を受け取ります(この形式では、黒の場合は_#xxxxxx_、例では_#000000_)

これを整数値に変換するにはどうすればよいですか?

Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))を実行してさらに極端な_0x000000_の結果を取得しようとしましたが、これはintとして解釈されません。他の提案はありますか?

エラーが表示されます:08-03 21:06:24.673: ERROR/AndroidRuntime(20231): Java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer

setBackgroundColor(int color)関数にAndroid SDKを使用しています。これは、ご想像のとおり、整数のカラー値を取ります。

これはこの質問の反対です: Androidで色整数を16進文字列に変換する方法?

73
CQM

本当の答えは以下を使用することです:

Color.parseColor(myPassedColor) Androidでは、myPassedColor#000または#000000または#00000000のようなhex値です。

ただし、この関数 略式の16進値はサポートしません#000など。

164
CQM
Integer.parseInt(myString.replaceFirst("#", ""), 16) 
13
Mike Samuel

Androidで16進数の色をintに変換する場合は、Android Color class、以下に示す例

これは明るい灰色の色です

Color.parseColor("#a8a8a8");

それだけで、結果が得られます。

12
Ashana.Jackol

私は#AAAAAAの形でいくつかの色を見つけたのと同じ問題があり、それをAndroidが利用できる形に変換したい。 0xFFAAAAAA Androidが自動的に色を伝えることができます。最初のFFalpha値を伝えていることに注意してください。

6
Fei

私は同じ問題に直面していました。この方法で私はそれを解決することができました。 CQMが言ったように、Color.parseColor()を使用することはこの問題の良い解決策です。

私が使用したコードは次のとおりです。

this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));

この場合、私の設定(color_prefs)から色の選択を変更するときに、ボタンのテキストの色(Button_C)を変更することが目標でした。

2
RunningWheels

本当の答えは、これが最も簡単で簡単なことです....

String white = "#ffffff";
int whiteInt = Color.parseColor(white);
2
user7294802

[〜#〜] cqm [〜#〜]answer および ovokerie-ogbetaanswer to別の質問 私はこの解決策を思いつきました:

if (colorAsString.length() == 4) { // #XXX
    colorAsString = colorAsString.replaceAll("#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])", "#$1$1$2$2$3$3");
}

int color = Color.parseColor(colorAsString);
0
MikeL

これを試して、リソースにドロアブルを作成してください...

_<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <solid Android:color="@color/white"/>
    <size Android:height="20dp"
        Android:width="20dp"/>
</shape>
_

次に使用...

_ Drawable mDrawable = getActivity().getResources().getDrawable(R.drawable.bg_rectangle_multicolor);
mDrawable.setColorFilter(Color.parseColor(color), PorterDuff.Mode.SRC_IN);
mView1.setBackground(mDrawable);
_

色付き... "#FFFFFF"

色が透明の場合... setAlpha

mView1.setAlpha(x); with x float 0-1 Ej(0.9f)

幸運を

0
Gaston Cufre