2014-07-01 24 views
0

我想獲得一個GridView內的單個項目,以便在手指移過它時更改圖像。我有兩個圖像,no_touchtouch。我想要的是GridView中的所有項目在活動啓動時設置爲no_touch,並且當手指觸摸任何一個或多個項目時,只需將這些項目更改爲touch圖像。獲取一個圖形項目圖像變化onTouch - Android

所有我能得到到目前爲止是當項目之一是點擊它改變了整個GridView的的背景(並會出現一個小麪包)。我希望能夠沿着每個項目「滑行」,並且只有那些改變圖像。

我迄今爲止代碼:

MainActivity.java

public class MainActivty extends Activity { 

drawingView dview; 
GridView grid; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_activity1); 

    final GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 
    gridview.setVisibility(GridView.VISIBLE); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 
      gridview.setBackgroundColor(Color.RED); 
      Toast.makeText(Activity1.this, "Position " + position, 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 
} 

ImageAdapter.java

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
    mContext = c; 
    } 

public int getCount() { 
    return mThumbIds.length; 
    } 

public Object getItem(int position) { 
    return null; 
    } 

public long getItemId(int position) { 
    return 0; 
    } 

public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { 
     imageView = new ImageView(mContext); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    } else { 
     imageView = (ImageView) convertView; 
    } 
    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 

public Integer[] mThumbIds = {R.drawable.images ....}; 
} 

如果有誰知道怎麼樣,甚至只是爲了獲得一個個人項目改變形象onClick,這將是輝煌。

在此先感謝,

回答

0

您已經在網格上設置了點擊偵聽器。要做你期望的事情(點擊itens),你應該在你在這個GridView上的每個ImageView上設置監聽器。

例子:

imageView.setOnClickListener(new OnClickListener() {...}); 

如果你知道的大小和你有圖像,更好的辦法是通過XML佈局,使用與狀態「按下」和默認的itens可繪製。

<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 

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

    <item android:drawable="@drawable/the_default_drawable"> 
    </item> 
</selector> 
+0

我試着實現xml版本,但應用程序崩潰。如果我想改變點擊觸摸,Java版本可能會更容易實現長期。我嘗試改變我的代碼從gridview到imageView,但隨着代碼中所有變化,它變得混亂。謝謝你的方法。我可能還會讓他們在某個時間工作 – Gurfuffle