tôi mange để có được sau hình ảnh bằng cách sử dụng mã bên dưới:
Tôi di chuyển mã này blog:
// please check this part.
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView imageView;
if(arg1==null){
imageView = new ImageView(DemoGridViewActivity.this){
@Override
protected void onMeasure(int widthMeasureSpec,
int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
}
};
}else{
imageView = (ImageView) arg1;
}
imageView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
imageView.setBackgroundColor(Color.BLUE);
imageView.setScaleType(ScaleType.FIT_XY);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//according to the position return proper imageview with bitmap
//for case 0 - top-left part
//for case 1 - top-right
//for case 5 - bottom-left
//for case 6 - bottom-right
switch(arg0){
case 0:
imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth()/2, bitmap.getHeight()/2));
imageView.setBackgroundColor(Color.RED);
return imageView;
case 1:
imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, 0, bitmap.getWidth()/2, bitmap.getHeight()/2));
imageView.setBackgroundColor(Color.GREEN);
return imageView;
case 5:
imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2));
imageView.setBackgroundColor(Color.YELLOW);
return imageView;
case 6:
imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2));
imageView.setBackgroundColor(Color.MAGENTA);
return imageView;
default:
imageView.setImageResource(R.drawable.ic_launcher);
return imageView;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="5" >
</GridView>
</LinearLayout>
Nguồn
2012-06-20 03:09:15
Tránh đăng các ứng dụng làm việc đầy đủ, dính vào mảnh vỡ, hiệu quả hơn khi tạo ra một điểm. – JoxTraex
Tôi đã tạo một blog http://sudarnimalan.blogspot.sg/2012/06/android-bigger-image-for-first-item-of.html để giải thích điều này. 1. cần kiểm tra phương thức getView, 2. check switch (arg0) trong trường hợp 0, case 1, case 5 và case 6 thiết lập phần trên cùng bên trái, trên cùng bên phải, dưới cùng bên trái, phần dưới cùng bên phải của bitmap . –
Làm cách nào để thêm một TextView giữa hai mục xem lưới như bạn đã thực hiện với ImageView? – ClarkXP