画像の下部にグラデーションを追加します。このようなもの :
私はこのようなものを試しましたが、グラデーションなしの画像しか取得できません。
<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>
次の2つのレイヤーが必要です。ImageView
と、その上にView
があり、グラデーションはAndroid:background
。これらの2つのView
sをFrameLayout
に入れます。
<FrameLayout
... >
<ImageView
...
Android:src="@drawable/trend_donald_sterling" />
<View
...
Android:background="@drawable/trending_gradient_shape"/>
</FrameLayout>
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桁です。
画像ビューで「フォアグラウンド」属性を使用してみてください
<ImageView
...
Android:src="@drawable/trend_donald_sterling"
Android:foreground="@drawable/trending_gradient_shape" />
それは私のために働いた。
つかいます 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>
これはどのように行うのですか、親レイアウトとして相対レイアウトを使用し、次のコードを使用します
<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>