изглед на мрежа за android с изображения (изображенията се свиват и изглеждат замъглени)

въведете описание на изображението тукТрябва да покажа 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 емулатор) и моля, насочете ме как да го коригирам..

въведете описание на изображението тук


person Shruti    schedule 20.09.2011    source източник
comment
снимката ще бъде по-полезна.   -  person Paresh Mayani    schedule 20.09.2011
comment
@ PM - Пареш Маяни: сега добавих и изображението, моля, помогнете ми   -  person Shruti    schedule 01.10.2011


Отговори (2)


Предоставяте ли множество ресурси за разделителна способност? Прочетете внимателно тази статия за Поддръжка на множество екрани.

Не мисля, че изображенията се свиват, те само изглеждат по-малки, защото телефонът ви има по-висока плътност или разделителна способност от емулатора, на който сте тествали.

person Ovidiu Latcu    schedule 20.09.2011
comment
също така вашите ресурси трябва да бъдат мащабирани за множество екрани и поставени правилно в техните папки - person Ovidiu Latcu; 20.09.2011
comment
трябва ли да запазя всичките 7 икони в различни папки (drawable-ldpi,drawable-mdpi,drawable-hdpi със съответните размери 32*32,48*48 и 64*64?? изображенията, които използвам, са с размер 61*80 - person Shruti; 21.09.2011
comment
не, не е необходимо да запазвате всички версии. Android ще реши кое е най-подходящо. Колкото повече предоставяте, толкова по-добри са резултатите. - person Drejc; 07.10.2011

Изображенията не ми изглеждат замъглени. Те просто са по-малки поради по-високата резолюция на екрана. Но текстът изглежда размазан.

Затова предлагам да използвате комбинация от 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);
...
person Drejc    schedule 07.10.2011
comment
Как мога да комбинирам изглед на изображение с изглед на текст в клетка на изглед на мрежа? - person Shruti; 07.10.2011