web-dev-qa-db-ja.com

画像ビューにグラデーションを追加

画像の下部にグラデーションを追加します。このようなもの :

enter image description here

私はこのようなものを試しましたが、グラデーションなしの画像しか取得できません。

    <ImageView
    Android:id="@+id/trendingImageView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:background="@drawable/trend_donald_sterling"
    Android:src="@drawable/trending_gradient_shape"
  />

trending_gradient_shape:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
       Android:shape="rectangle" >

    <gradient
        Android:angle="90"
        Android:endColor="@Android:color/darker_gray"
        Android:startColor="@Android:color/darker_gray" />

    <corners Android:radius="0dp" />

</shape>
38
user1163234

次の2つのレイヤーが必要です。ImageViewと、その上にViewがあり、グラデーションはAndroid:background。これらの2つのViewsをFrameLayoutに入れます。

<FrameLayout
    ... >

    <ImageView
        ...
        Android:src="@drawable/trend_donald_sterling" />

    <View
        ...
        Android:background="@drawable/trending_gradient_shape"/>


</FrameLayout>
55
nhaarman

Gardient.xmlにアルファ値を設定するだけです:

あなたのimageView:

Android:background="@drawable/trend_donald_sterling"
Android:src="@drawable/trending_gradient_shape"

グラデーションxmlファイル:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >

<gradient
    Android:angle="90"
    Android:endColor="#00ffffff"
    Android:startColor="#aa000000"
    Android:centerColor="#00ffffff" />

<corners Android:radius="0dp" />
</shape>

カラー値では、#の後の最初の2桁はアルファ値に対応し、残りはR G B形式の実際のカラー値で、それぞれ2桁です。

29
Kaustuv

画像ビューで「フォアグラウンド」属性を使用してみてください

<ImageView
        ...
        Android:src="@drawable/trend_donald_sterling"
        Android:foreground="@drawable/trending_gradient_shape" />

それは私のために働いた。

20
swetabh suman

つかいます Android:foreground="..." の代わりに Android:background="..."

これで、ImageViewとViewをFrameLayout内に配置する必要がなくなりました!

つまり、最終コードは次のようになります

ImageView

<ImageView
    ...
    Android:foreground="@drawable/trend_donald_sterling"/>

ドローアブル

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle" >

    <gradient
        Android:angle="90"
        Android:endColor="#00ffffff"
        Android:startColor="#aa000000"
        Android:centerColor="#00ffffff" />

    <corners Android:radius="0dp" />
</shape>
7
Slick Slime

これはどのように行うのですか、親レイアウトとして相対レイアウトを使用し、次のコードを使用します

 <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent">
        <ImageView
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:scaleType="centerCrop"
            Android:src="@drawable/img_sample"/>
        <View
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:background="@drawable/gradiant"/>
        <LinearLayout
            Android:layout_marginLeft="10dp"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:orientation="vertical"
            Android:weightSum="1">
            <View
                Android:layout_width="match_parent"
                Android:layout_height="0dp"
                Android:layout_weight="0.55"/>
            <TextView
                Android:layout_width="wrap_content"
                Android:layout_height="0dp"
                Android:layout_weight="0.25"
                Android:text="Events"
                Android:gravity="bottom"
                Android:textStyle="bold"
                Android:textSize="18sp"
                Android:textColor="#ffffff"/>
            <TextView
                Android:layout_width="wrap_content"
                Android:layout_height="0dp"
                Android:layout_weight="0.25"
                Android:text="Some description about the events goes here"
                Android:textSize="14sp"
                Android:textColor="#ffffff"/>
        </LinearLayout>
    </RelativeLayout>

あなたが理解できることを願って、ここに私のグラディアントコードを添付します。それをドローアブルフォルダ内で使用します。..

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >

<gradient
    Android:angle="90"
    Android:endColor="#00ffffff"
    Android:startColor="#aa000000"
    Android:centerColor="#00ffffff" />

<corners Android:radius="0dp" />
</shape>
3
Ashana.Jackol