Androidおよび(画像)ビューアルファのアルファの設定


回答:


195

いいえ、ありません。ImageView.setAlpha(int)ドキュメントで「関連するXML属性」セクションがどのように欠落しているかを参照してください。別の方法は、XMLの対応物がであるView.setAlpha(float)を使用することです。0から255ではなく0.0から1.0の範囲を取ります。android:alpha

<ImageView android:alpha="0.4">

ただし、後者はAPIレベル11以降でのみ使用できます。


7
ここで繰り返しますImageView.setAlpha(int)が、int少し時間android:alphaがかかってfloatを取っているので、厳密に言うと、後者は前者の正確なXML対応ではありませんが、の対応View.setAlpha(float)です。また、すでにここで何度も言及されているように、android:alpha/ View.setAlpha(float)はAPIレベル11以降でのみ使用できます。
sschuberth 2013年

違いは、許容範囲がfloat 1の場合は0-1、int 1の場合は0-255であることです。
ataulm 2017年

232

他の応答よりも簡単です。alphadouble値を取るxml値があります。

android:alpha="0.0" 見えない

android:alpha="0.5" シースルー

android:alpha="1.0" 完全に見える

それがどのように機能するかです。


15
あるsetAlpha(float)android:alphaのみAPI 11(アンドロイド3.0)以来。以前のAPI 11では、コードを使用して画像のアルファを設定する必要がありました。sschuberthがすでに上記のanserで述べたように。
Salw 2013年

@Antonioなんで?この答えは私の上に何の情報も追加せず、逆に完全ではありません。
sschuberth 2016年

@sschuberthあなたの答えは完全に正しいですが、例がないため、この答えはあなたの答えよりも注意を引く可能性があります。あなたの答えはより多くの情報を提供しますが、この答えは私が本当に必要としているものにより近い解決策を提供します。あなたが説明したことを使用するいくつかの例を追加してください、それは絶対に役立ちます!
アントニオ

@Antonio完了。私は今私の答えを作りましたsuper-duper-over-verbose ;-)
sschuberth

53

XMLについてはわかりませんが、次のようにコードで実行できます。

ImageView myImageView = new ImageView(this);
myImageView.setAlpha(xxx);

API 11より前:

  • 範囲は0〜255(両端を含む)で、0は透明、255は不透明です。

API 11以降:

  • 範囲は0f〜1f(両端を含む)で、0fは透明、1fは不透明です。

2
うん、知ってるよ。(私はこれが質問で暗黙的であることを望みました。)XMLの1つのポイントは、このコードの一部を取り除くことです。alphaさまざまなサイズ、位置があるのに、XML属性の対応物がない理由は、私には意味がありません。
SK9、2011

私は疑問に思う:なぜそれは廃止されたのですか?それは、浮動小数点パラメータを持っているからですか?
Android開発者

はい、あなたはimageView.setAlpha(1.0F)を使用しますが、APIレベル11を必要とすることができます
トニーCeralva

12

多分無地の背景の役に立つ代替品:

入れのLinearLayoutをかけImageViewのと使用のLinearLayoutを不透明フィルタとして。以下は、背景が黒の小さな例です。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF000000" >

<RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon_stop_big" />

    <LinearLayout
        android:id="@+id/opacityFilter"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#CC000000"
        android:orientation="vertical" >
    </LinearLayout>
</RelativeLayout>

ヴァリ背景:アンドロイドの属性のLinearLayoutの間#00000000(完全に透明)と#FF000000を(完全に不透明)。


1
特に電話デバイスでは、画像の問題のアルファを解決するためにそれを行うのは本当に最善ではありません。
Prakash Nadar

これは、背景を透明にしたいが子は透明にしたくない場合に最適です。親コンテナでアルファを使用すると、そのすべての子も透明になります
noni

8

現在、XMLの代替手段があります。

        <ImageView
        android:id="@+id/example"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/example"
        android:alpha="0.7" />

それは:android:alpha = "0.7"

0(透明)〜1(不透明)の値。


4

android:alpha = 0.5を使用して、不透明度を50%にし、Androidマテリアルのアイコンを黒からグレーに変更します。


4

setAlpha(int)APIの時点で廃止されました16Android 4.1

setImageAlpha(int)代わりに使用してください


3

このフォームをAndroidの古いバージョンに使用します。

ImageView myImageView;
myImageView = (ImageView) findViewById(R.id.img);

AlphaAnimation alpha = new AlphaAnimation(0.5F, 0.5F);
alpha.setDuration(0); 
alpha.setFillAfter(true); 
myImageView.startAnimation(alpha);

0

アルファは、次の16進形式#ARGBまたは#AARRGGBBを使用して色とともに設定できます。http://developer.android.com/guide/topics/resources/color-list-resource.htmlを参照してください


XML属性を使用して画像のアルファを設定したい。これは役に立ちますか?
SK9

私はこれを使用して、背景画像のあるレイアウトの上にレイアウトをブリードします。確かに、画像自体に画像のアルファを設定しますか?
付与

「イメージ自体」とはどういう意味ですか?XML内ですか?見落としがあるかもしれませんが、アルファXML属性はありません。
SK9

つまり、画像を作成するときに、透明レイヤーを追加して、画像の不透明度を50または必要な値に設定します。
付与

私はandroid:tintが効果がないことに非常に驚いています。それはアルファ値を可能にします...しかし、それは白い画像に影響を与えません:-((((((
誰か誰か
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.