1

添付の Gmail アプリのスクリーンショットでは、ListView の背景には、リストの右側に垂直方向のグラデーションがあり、隣接する View と区別されているようです。

xml で GradientDrawable を定義できることはわかっていますが、これを使用してリストの片側の背景としてグラデーションを描画し、残りのリストの背景を明るい灰色として描画するにはどうすればよいでしょうか?

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#DDDDDD"
      android:endColor="#CCCCCC"
      android:angle="0" />
</shape>

ここに画像の説明を入力

4

4 に答える 4

1

ドローアブルを作成し、リスト項目を含むレイアウトの右側に配置できます。したがって、グラデーションはビュー内の別のコンポーネントであり、右側のビューの ListView を作成します。

この疑似コードのようなもの

<LinearLayout
   android:orientation="horizontal"

   <ListView

   />

   <ImageView
        android:background="@drawable/gradient_drawable"
   >


>
于 2013-01-16T16:21:48.980 に答える
1

作成したカットサム ドローアブルを ListView アイテムの background 属性として割り当てるだけです。これは、リスト要素の定義に使用している XML レイアウトで行うことができます。

例として、このレイアウト (list_item.xml) を使用して、リスト アイテムのカスタム レイアウトを定義します (背景としてグラデーションを割り当てます)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_item_gray_gradient"
    android:orientation="horizontal"

...
于 2013-01-16T16:13:35.160 に答える
0

最初にこれを作成しますdrawable(drawable/list_gray_gradient.xml)

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
<item>
      <shape>
            <solid android:color="#CCCCCC" />
      </shape>
</item>
<!-- This is the main color -->
<item android:right="10dp">
     <shape>
           <solid android:color="#DDDDDD" />
     </shape>
</item>

</layer-list>

そして、これをあなたのlist item layout: (layout/list_item.xml)に使用するだけです

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"            
        android:background="@drawable/list_gray_gradient" >
</RelativeLayout>
于 2013-01-16T16:46:01.100 に答える
0

以下を使用して、drawable を 95% ライト グレーに設定し、右半分にグラデーションを設定できます。

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  <gradient
      android:startColor="#DDDDDD"
      android:centerColor="#DDDDDD"
      android:endColor="#CCCCCC"
      android:centerX=".95"
      android:centerY=".95"
      android:angle="0" />
</shape>
于 2013-01-16T16:33:23.347 に答える