これらの質問に関連して:
ListViewのTextViewにグラデーション効果を追加するとNPEが生成されます
そして
TextView
の背景をグラデーション効果でListView
に設定する方法を知りたいですか?
上記の質問の1つで、TextView
のテキストにグラデーション効果を追加しました。そして、2番目の質問をざっと読んだ後、固定の背景色しか追加できないようです。
背景にグラデーションを追加するにはどうすればよいですか? CustomListAdapter
を作成する必要がありますか?
描画可能なリソースを作成し(以下の例を参照)、ListItem用に作成したレイアウトに追加するだけです。
ドローアブル(res\drawableフォルダー-名前は何でも-listgrad.xml for ex)は次のようになります。
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:startColor="@color/gradient_start"
Android:endColor="@color/gradient_end"
Android:angle="-270" />
</shape>
次のコードスニペットのように、リストアイテムのレイアウト(これに定義するlayout.xmlファイル)に追加します。
<TextView
Android:id="@+id/ranking_order"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/list_grad"
/>
...
グラデーションを作成すると、textView、レイアウト、ボタンなど、ほとんどすべてに適用できます。
グラデーションの作成および使用方法を理解するには、 this link を参照してください。
グラデーションを作成するには、以下のディレクトリに追加する必要があります
勾配のコードは次のようになります-
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape>
<gradient
Android:startColor="#ff2d9a59"
Android:centerColor="#ff42959a"
Android:endColor="#ff23729a"
Android:angle="135"/>
</shape>
</item>
</selector>
ここから参照: Androidで角の丸いListViewを作成するにはどうすればよいですか? (非常に便利だとわかりました。)
以下をファイル(gradient.xmlなど)に追加し、(res/drawable/gradient.xml)ディレクトリに配置します。
_<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:startColor="#SomeGradientBeginColor"
Android:endColor="#SomeGradientEndColor"
Android:angle="270"/>
<corners
Android:bottomRightRadius="7dp"
Android:bottomLeftRadius="7dp"
Android:topLeftRadius="7dp"
Android:topRightRadius="7dp"/>
</shape>
_
このファイルの作成が完了したら、次のいずれかの方法で背景を設定します。
コードを介して:listView.setBackgroundResource(R.drawable.customshape);
XMLを使用して、次の属性をコンテナに追加します(例:LinearLayoutまたは任意のフィールド)。
_Android:background="@drawable/customshape"
_