だから私はウェブから来る画像のリストを持っています、私はそれらがどの色かわからないので、ImageViewの上にテキストを置きたいです。
私のアイデアは、ImageViewと、そのImageViewとその上のテキストの上に透明度のグラデーションが設定されたイメージオーバーレイを配置することです。私はこの行動を模倣したいと思います:
とにかくこれをXML経由で行う方法はありますか?
あなたが書いたListAdapter
のgetView(...)
で膨張するリスト項目のXMLを書くとき、あなたはきっとこれを行うことができます。
リストアイテムについては、次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<ImageView
Android:layout_width="320dp"
Android:layout_height="240dp"
Android:background="#ACACAC"/>
<RelativeLayout
Android:layout_width="320dp"
Android:layout_height="240dp"
Android:background="@drawable/gradient">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Here is your text"
Android:textColor="#000000"
Android:layout_alignParentBottom="true"/>
</RelativeLayout>
</RelativeLayout>
次に、そのドローアブル/グラデーションを作成します。そのため、あなたは here から回答をリサイクルできます。
adityajonesのおかげで、なんとかそこにたどり着くことができました:)これはmy正解ですが、私は彼を正しいものとしてマークします!
<?xml version="1.0" encoding="utf-8"?>
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="200dp"
Android:scaleType="centerCrop"
Android:src="@drawable/image" />
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="200dp"
Android:background="@drawable/gradient_image" >
<TextView
Android:id="@+id/text"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_alignParentLeft="true"
Android:layout_margin="6dp"
Android:layout_marginBottom="18dp"
Android:shadowColor="#000"
Android:shadowRadius="7.0"
Android:text="This is some random text"
Android:textColor="@color/white"
Android:textSize="22sp" />
</RelativeLayout>
FrameLayoutまたはRelativeLayoutを使用します。最初に追加する最初のビューは、背景のImageViewである必要があります。その後、明らかにいくつかのTextViewと他のImageView [またはボタン、ImageButtonなど]が必要になります。
合理的なレイアウトのようです:背景画像、そして各コーナーに1つの追加ビュー。
グラデーションの場合は、下部にグラデーションドローアブルを背景にして、別のレイアウト/ビューが必要になるでしょうが、TextViewの1つの背景をグラデーションとして設定することで問題を回避できるかもしれません。
グラデーションドローアブルファイルを使用したり、xmlに設定したりする必要はありません。この関連する質問で説明されているように、GradientDrawable
クラスを使用して実用的にこれを行うことができます( プログラムでグラデーション )を設定し、ImageViewをカバーするレイアウトの背景として設定します。これにより、さまざまな色と方向を使用できます