30/09/2018, 17:57
Lỗi về GirdView trong Android
Mình có viết đoạn code MyAdapter kế thừa BaseAdapter như phía dưới, nhưng không hiểu làm sao chạy trên máy ảo vẫn lỗi, khi mình comment cái đoạn setLayoutParams thì chạy bình thường nhưng ảnh to quá, có bác nào chỉ giúp với.
public class MyAdapter extends BaseAdapter {
public Integer[] hinhAnh = { R.drawable.ic_1, R.drawable.ic_2, R.drawable.ic_3, R.drawable.ic_4, R.drawable.ic_5,
R.drawable.ic_6, R.drawable.ic_7, R.drawable.ic_8, R.drawable.ic_9 };
Context context;
public MyAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return hinhAnh.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView image;
if (convertView == null) {
image = new ImageView(context);
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
image.setLayoutParams(new GridView.LayoutParams(80, 80));
image.setPadding(8, 8, 8, 8);
} else{
image=(ImageView) convertView;
}
image.setImageResource(hinhAnh[position]);
return image;
}
}
Bài liên quan
Set sô cột cho grid view thay vì tạo ra một kích thước fix cứng như thế này.
Là sao bạn, nói rõ hơn dc không, mình chưa hiểu lắm
Dòng này thực hiện setWidth() và setHeight cho ImageView của em. Nhưng lỗi không phải ở chỗ fix cứng giá trị. Có khả năng là lỗi liên quan tới set LayoutParam cho ViewGroup. Ví dụ như RelativeLayout thì không thể set Params của LinearLayout được.
Em có thể post đoạn log bị lỗi lên đây.
Hoặc download project này về rồi import vào, anh chỉ build lại từ GitHub của ông nào đó thôi.
http://www.mediafire.com/download/sbcrau1me8akfbs/HelloGridView.zip
Đây anh, đoạn log hơi dài, có người bảo em nên thêm android:largeHeap=“true” vào thẻ Application
Vấn đề đúng là không nằm ở việc fix cứng giá trị nhưng mà việc fix cứng này là không tốt.
Còn báo chung chung thế này khó lắm.