質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

639閲覧

古い?ターゲットAPIレベルでandroid.graphics.Color.arbgを使えるようにするにはどうすればいいか

Haruto513

総合スコア52

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/02/06 05:55

発生している問題

現在Androidアプリの開発の勉強中です。
現在作成中のAndroidアプリ内で、動的にビューの表示を行う時、背景色を50パーセント透過した色にしたいと考えています。
しかし、Color.argb()を使うのにAPIレベルが最低26から?のようで、現在最低APIレベル15で制作している為エラーが出てしまっています。

Kotlin

1val newView = v?.findViewById<LinearLayout>(R.id.coverLinear) 2newView?.setBackgroundColor(Color.argb(0.5f,105f,105f,105f)) 3newView?.visibility = View.VISIBLE 4

今度の実業務でやや古めの端末を使う予定がある関係上、出来るだけターゲットAPIレベルを変えずに、背景色を透過させる処理を実装したいと考えています。

Color.argb()を使えるようにする手段はあるのでしょうか。
宜しければご教示頂けると助かります。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/02/06 06:17

そもそもですが、Color.argbメソッドには引数がintのもの(APIレベル1から)と、引数がfloatのもの(これがAPIレベル26から)の2種類あります。 https://developer.android.com/reference/android/graphics/Color.html#argb(int,%20int,%20int,%20int) ご提示のコードColor.argb(0.5f,105f,105f,105f)の使い方は合っていますか? float版だと各色0~1.0f の範囲指定だと思います。 (望みの色は出ていますか? 1.0f以上の指定だと、うまくAPI側が丸めてくれているのかもしれませんが)
Haruto513

2020/02/06 07:14

コメントありがとうございます。指定のやり方が間違っていたようです。26以上じゃないと使えないのかと思いましたが、リンク先の説明をなんとか読んでみると、Intで指定する場合alphaは1~255の間で指定するのですね。 参考に、Color.argb(125,105,105,105)というように指定したら、望み通りの色が設定されました! 教えてくださりありがとうございました!
dodox86

2020/02/06 07:48

解決できたようで何よりです。自己解決で良いと思いますので、回答をその旨書いて、質問を閉じてもらえると良いです。
guest

回答1

0

自己解決

API26以上が必要なのは、引数にFloat型を使うときで、Int型を使えば、低いAPIレベルでも背景色の透過は実現できるようでした。
Int型を引数とするとき、それぞれの値を1~255で指定するようで、255で不透明度100%なので、

Kotlin

1 2newView.setBackgroundColor(Color.argb(127,105,105,105)) 3

というように指定すると、不透明度およそ50パーセントの灰色が指定できるようになりました。

投稿2020/02/07 00:38

Haruto513

総合スコア52

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問