0

我为小屏幕(2.7 英寸)制作了一个带有网格视图的布局。我的图标是 48 x 48 像素。现在我想要平板电脑上的gridview,所以我创建了一个新布局并将设置更改为大和横向。我想为平板电脑使用更大的图标:72 x 72 像素。问题是大图标没有显示,但小图标显示。我的小图标在文件夹 drawable-mdpi 中,大图标在文件夹 drawable-hdpi 中。我已经尝试将大图标移动到 drawable-xhdpi 文件夹,但没有成功。我还尝试更改 imageadapter 的 scaletype 和 layoutparams 但也没有成功 有人可以帮我在平板电脑上获得更大的图标吗?

这是我的大布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/back" >



<GridView
    android:id="@+id/Menu"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/imageView1"
    android:columnWidth="80dp"
    android:gravity="center_horizontal|top"
    android:horizontalSpacing="130dp"
    android:numColumns="auto_fit"
    android:paddingTop="10dp"
    android:scrollbars="none"
    android:stretchMode="columnWidth"
    android:verticalSpacing="50dp" android:layout_marginTop="50dip">

</GridView>

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/title" />

</RelativeLayout>

我的 gridview 图像适配器的 java 代码是:

public class ImageAdapter extends BaseAdapter 
{
    private Context context;

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

    //---returns the number of images---
    public int getCount() {
        return menu_icon.length;
    }

    //---returns the ID of an item--- 
    public Object getItem(int position) {
        return null;
    }

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

    //---returns an ImageView view---
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(150, 150));                 imageView.setScaleType(ImageView.ScaleType.CENTER);
            imageView.setPadding(5, 5, 5, 5);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(menu_icon[position]);
        return imageView;


    }
}
4

2 回答 2

0

尝试这个,

imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 

这可能有效。

于 2012-06-27T09:08:58.840 回答
0

这可能会解决您的问题:

imageView.setScaleType(ImageView.ScaleType.FIT_XY);

http://developer.android.com/reference/android/widget/ImageView.html#setScaleType(android.widget.ImageView.ScaleType)

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

于 2013-08-04T13:47:08.490 回答