2011-12-05 16 views
1

私はurlから多くの画像を持っていますGridviewを持っています。私はそれらのすべてをArraylistに追加し、ArraylistGridviewに設定しました。私は、各グリッド項目の周囲に境界線を得るGridView項目をクリックしたとき、私は今、とてもクリックしてリスナーをクリックしてくださいandroid

grid.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
              //my code here 

            } 

を使用していました。国境の色を変えることはできますか?

答えて

1

はいできます。グリッドアイテムのレイアウトでは、背景ドロワブルをセレクタとして設定できます。 http://developer.android.com/guide/topics/resources/drawable-resource.html#StateListアイテムの各状態(押し、フォーカス、デフォルトなど)を任意の色(またはドロウアブル)に対応させることができます。ボーダーをカスタム描画可能にするのが最も簡単です。形状または9パッチのいずれか。この例では

+0

境界線が必要ないのですか? –

+0

あなたが好きなようにあなたのdrawableを見せることができます。ボーダーなし、ボーダーなし、ソリッドカラー、透明、グラデーション、ビットマップ、何でもあります。セレクタは、基本的には、状態を指しているものとリソースを交換します。そして、それはすべてXMLで行われます。 – Andrew

+0

これが問題を解決する場合は、私の答えを正しいものとしてマークしてください。 – Andrew

3

のres /描画可能/ border.xml

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <stroke android:width="2dp" android:color="@color/green"/> 
    <solid android:color="@android:color/transparent"/> 

のres /描画可能/ grid_item_selector.xml

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

は今のGridViewで使用プロパティandroid:listSelector="@drawable/grid_item_selector"

です

in main.xml

 <GridView android:id="@+id/gridview" 
         android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
         android:numColumns="auto_fit" 
        android:columnWidth="90dp" 
         android:stretchMode="columnWidth" 
         android:gravity="center" 
        android:horizontalSpacing="-1px" 
         android:verticalSpacing="-1px" 
        android:drawSelectorOnTop="true" 
        android:listSelector="@drawable/grid_item_selector"/> 
関連する問題