带图像的android网格视图(图像缩小,看起来模糊)

时间:2011-09-20 08:03:46

标签: android gridview android-imageview

enter image description here我必须在我的应用程序的主屏幕上显示7个图标。为此,我已使用图像视图在网格视图上排列图标以显示图像。在模拟器上它看起来绝对精细但图像缩小看起来模糊,当我在LG Optimus p350上部署应用程序时,请帮我如何清楚地显示实际尺寸的图像:

我尝试的代码是:

<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:columnWidth="61dp"
    android:numColumns="3" android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp" android:stretchMode="spacingWidthUniform"
    android:gravity="center" android:layout_gravity="center" />

图标大小为61 * 80

编辑:

<supports-screens android:smallScreens="true"
        android:normalScreens="true" android:largeScreens="true"
         android:anyDensity="true"/>

请参阅图像和代码在模拟器上输出显示如下。我想在设备上显示输出也具有此清晰度。请指导

看第二个屏幕截图(在qvga模拟器上模糊),请指导我如何纠正它..

enter image description here

2 个答案:

答案 0 :(得分:2)

图像对我来说并不模糊。由于更高的屏幕分辨率,它们只是更小。但文字看起来确实很模糊。

所以我建议使用 ImageView TextView 的组合。分隔文字和图像。文本将适当缩放。 您还可以为不同的分辨率提供多个图像集。

修改 您可以创建类似于此的网格项布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:gravity="bottom"
android:layout_width="wrap_content" 
android:layout_gravity="bottom">

<ImageView android:id="@+id/thumbnailImage"
    android:layout_height="70dp" 
    android:layout_width="fill_parent"      
    android:gravity="center_horizontal" />

<TextView android:id="@+id/thumnailTitle" android:text="TextView"
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="fill_parent"
    android:gravity="center_horizontal|bottom" />
</LinearLayout>

创建一个扩展BaseAdapter类的自定义网格适配器:

public class MyGridAdapter extends BaseAdapter
{...}

将适配器与网格相关联:

adapter = new MyGridAdapter();

GridView gridView = (GridView) findViewById(R.id.gridView);
gridView.setAdapter(adapter);

然后,只需使用getView适配器方法将项填充到网格中:

public View getView(int position, View convertView, ViewGroup parent)
{
   // assuming the grid item layout is named "grid_item"
   View view = inflater.inflate(R.layout.grid_item, null);

   TextView text = (TextView) view.findViewById(R.id.thumnailTitle);
   text.setText("Test");

   ImageView thumbnail = (ImageView) view.findViewById(R.id.thumbnailImage);
...

答案 1 :(得分:0)

您是否提供多种解决方案资源?请仔细阅读有关Supporting Multiple Screens

的文章

我不认为图像缩小,它们看起来更小,因为您的手机的密度或分辨率高于您测试的模拟器。