[解決済み] Java/Androidのカラーintのアルファバイトを操作する
2023-04-24 17:08:06
質問
JavaでintをAndroidの色(Canvasに描画するための)として使っている場合、そのintのアルファ成分だけを操作するにはどうしたらよいでしょうか。たとえば、これを行うためにどのように操作を使用することができますか。
int myOpaqueColor = 0xFFFFFF;
float factor = 0;
int myTransparentColor = operationThatChangesAlphaBytes(myOpaqueColor, factor);
//myTransparentColor should now = 0x00FFFFFF;
理想を言えば、これらの最初のバイトに何かしらの
factor
を掛けるのが理想的です。
どのように解決するのですか?
をチェックしてください。 カラー クラスをご覧ください。
あなたのコードは少しこのようなものになるでしょう。
int color = 0xFFFFFFFF;
int transparent = Color.argb(0, Color.red(color), Color.green(color), Color.blue(color));
つまり、メソッドでラップすると、次のようになります。
@ColorInt
public static int adjustAlpha(@ColorInt int color, float factor) {
int alpha = Math.round(Color.alpha(color) * factor);
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
return Color.argb(alpha, red, green, blue);
}
そして、これを呼び出して透明度を例えば50%に設定します。
int halfTransparentColor = adjustAlpha(0xFFFFFFFF, 0.5f);
提供されているColorクラスを使用することは、ビット操作を自分で行うよりも少し自己文書化されており、さらにそれはすでにあなたのために行われているのだと思います。
関連
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Android 6.0 Marshmallow (API 23) で getColor(int id) が非推奨になりました。
-
[解決済み] Android標準のボタンを色違いに
-
[解決済み] Androidの開発でJava 8を使うことは可能ですか?
-
[解決済み] Androidでフローティングアクションボタンの色を変更する
-
[解決済み] Javaでlongをintに安全にキャストする
-
[解決済み】カラーリソースからcolor-intを取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
java.sql.SQLException: 結果セットの開始前
-
FindBugの使用概要
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Java:未解決コンパイル問題の解決方法
-
switch case文のcaseの後の列挙定数は列挙型なし
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ