web-dev-qa-db-ja.com

ListViewでTextViewの背景色にグラデーション効果を追加するにはどうすればよいですか?

これらの質問に関連して:

ListViewのTextViewにグラデーション効果を追加するとNPEが生成されます

そして

ListViewの色とフォントの変更方法

TextViewの背景をグラデーション効果でListViewに設定する方法を知りたいですか?

上記の質問の1つで、TextViewのテキストにグラデーション効果を追加しました。そして、2番目の質問をざっと読んだ後、固定の背景色しか追加できないようです。

背景にグラデーションを追加するにはどうすればよいですか? CustomListAdapterを作成する必要がありますか?

33
Kazekage Gaara

描画可能なリソースを作成し(以下の例を参照)、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"
        />
...
84
Booger

グラデーションを作成すると、textView、レイアウト、ボタンなど、ほとんどすべてに適用できます。

グラデーションの作成および使用方法を理解するには、 this link を参照してください。

グラデーションを作成するには、以下のディレクトリに追加する必要があります

enter image description here

勾配のコードは次のようになります-

<?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>
4
Ajit Singh

ここから参照: 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"
_
1
user274294