1

正しい出力を表示するカスタムアダプタを使用してリストビューを設定できます。各リストアイテムにはグラデーションスタイルもあります。以下のdrawable.xmlを参照して、アイテムの背景を他のグラデーションに変更するには、それらのいずれかをタップします。アイテムごとに異なるグラデーションを設定できますか?

<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
<gradient 
android:startColor="#FFFAFAFA" 
android:centerColor="#FFFFFFFF" 
android:endColor="#FFFAFAFA" 
android:angle="90"/>
</shape>

私のファイル...

activity_main.xml....メインxmlファイル

MainActivity.java....メインアクティビティ

Item.java....アイテムセレクターメソッド

ItemAdaptor....カスタムアダプタ

list_item.xml ..... item(textView)スタイリング

4

2 に答える 2

0

タップすると色が変わりました

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:background="@drawable/listitem_states" >

res / values / listitem_states.xmlを使用:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_selected="true"
   android:drawable="@color/listitem_active_color" ></item>
<item
    android:state_pressed="true"
   android:drawable="@color/listitem_active_color" ></item>
<item 
    android:drawable="@color/listitem_bg_color" /> 
</selector> 

グラデーションに簡単に適応できると思います。

于 2013-01-17T07:19:30.180 に答える
0

このようにしてみてください。

これをドローアブルに追加

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->

    <item
     android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/gradient_bg" />

    <item android:state_pressed="true"
        android:drawable="@drawable/gradient_bg_hover" />

    <item android:state_selected="true"
     android:state_pressed="false"
        android:drawable="@drawable/gradient_bg_hover" />
</selector>

レイアウトに追加

<ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#FFFFFF"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />
于 2013-01-17T07:26:07.637 に答える