Chế độ xem lưới của ứng dụng của tôi có 3 hàng và 3 cột. Tôi muốn điều này để lấp đầy màn hình, bất kể kích thước màn hình của thiết bị.Chế độ xem lưới trên lưới Android điều chỉnh theo kích thước màn hình
Tôi đã thử nhận kích thước cửa sổ và đặt bố cục tương ứng. Nhưng điều này không đưa ra một sự liên kết hoàn hảo vì nó hoạt động với weightsum trong linearlayout.
Vì vậy, chúng ta có thể sử dụng trọng số cho GridView hoặc có bất kỳ thuộc tính Android nào khác có thể được sử dụng. Cảm ơn rất nhiều về thời gian và phản hồi.
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/text1view"
android:background="@drawable/home_bg"
android:gravity="center"
android:horizontalSpacing="10dip"
android:numColumns="3"
android:stretchMode="columnWidth" />
từng hạng mục lưới là
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/grid_item_image"
android:layout_width="wrap_content"
android:layout_height="75dip"
android:layout_margin="0dip"
android:padding="0dip" >
</ImageView>
<TextView
android:id="@+id/grid_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/grid_item_image"
android:gravity="center_horizontal"
android:padding="0dip"
android:textColor="#000000"
android:textSize="10sp" >
</TextView>
mã của adapter:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.griditems, null);
holder = new ViewHolder();
holder.text1 = (TextView) convertView
.findViewById(R.id.grid_item_text);
holder.image = (ImageView) convertView
.findViewById(R.id.grid_item_image);
// if it's not recycled, initialize some attributes
holder.image.setImageResource(gridItemIds[position]);
holder.text1.setText(gridTitles[position]);
int h = mContext.getResources().getDisplayMetrics().densityDpi;
// holder.image.setLayoutParams(new LayoutParams(h-50,h-50));
convertView.setLayoutParams(new GridView.LayoutParams(h - 45,
h - 39));
// holder.image.setScaleType(ImageView.ScaleType.CENTER_CROP);
// holder.image.setScaleType(ImageView.ScaleType.FIT_XY);
// holder.image.setPadding(20, 20, 20, 20);
// convertView.setLayoutParams(new GridView.LayoutParams(Utils
// .getLayoutParameter(), Utils.getLayoutParameter()+50));
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ModuleManager().startModuleACtivity(position, mContext);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
TextView text1;
ImageView image;
}
vui lòng xem dòng
convertView.setLayoutParams(new GridView.LayoutParams(h-45, h-39));
tôi đã đạt được giá trị này với một số thử nghiệm trên trình giả lập kích thước khác nhau. Nhưng tôi không nghĩ rằng nó là một cách đúng đắn để xác định chiều cao và chiều rộng.
Hiện một số mã. Bạn đang cô găng lam gi? – TryTryAgain
tôi đã thêm. cho thuê có một cái nhìn. Cảm ơn thời gian ur và giúp đỡ – png
Cùng một vấn đề .. Bạn có thể giúp tôi, làm thế nào bạn ra khỏi này. – Sreeram