2011-07-14 8 views
0

みんなで一つだけのアイテムを描画することができますはどのように私は、GridViewの

gridView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
//    v.invalidate(0, 0, 5, 5); 
       v.invalidate(); //v is a ImageView here 
      } 
     }); 

私はVのみ描画することにしたいが、実際には、私は何をすればいい、Vの高さ以下のすべての項目が再描画なっています。返信用のuに感謝し、私のプロを解決dispatchDrawことができますか?または、私がなぜ無効(0、0、5、5)dosen't作業それが必要として不思議??

答えて

0
public class MyGridView extends GridView 
{ 
    private Bitmap background; 

    public MyGridView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     background = BitmapFactory.decodeResource(getResources(), R.drawable.bg); 
    } 
} 

@Override 
protected void dispatchDraw(Canvas canvas) 
{ 
    int count = getChildCount(); 
    int top = count > 0 ? getChildAt(0).getTop() : 0; 
    int backgroundWidth = background.getWidth(); 
    int backgroundHeight = background.getHeight(); 
    int width = getWidth(); 
    int height = getHeight(); 

    for (int y = top; y < height; y += backgroundHeight) 
    { 
     for (int x = 0; x < width; x += backgroundWidth) 
     { 
      canvas.drawBitmap(background, x, y, null); 
     } 
    } 

    super.dispatchDraw(canvas); 
} 

XML

<your.package.name.MyGridView 
    android:id="@+id/mygridview" 
    <!-- other GridView configuration parameters --> 
/> 
+0

〜する – pain