2012-04-07 1 views
0

В моей деятельности я должен показать несколько изображений. Я использовал gridview в своей деятельности, и каждая строка должна показывать 4 изображения (ширина каждого изображения составляет 25% экрана). Мне нужно уменьшить высоту изображения в том же размере по ширине.Android, как уменьшить высоту изображения в адаптере изображения?

Итак, в моем пользовательском интерфейсе у меня есть gridview, и мое изображениеAdapter устраивает изображение в экран. это код адаптера:

public class ContestantsPhotoAdapter extends BaseAdapter { 

    private LayoutInflater myInflater; 
    private Bitmap[] bitmapList; 


    public ContestantsPhotoAdapter(Context c) { 
     myInflater = LayoutInflater.from(c); 
    } 

    public void setData(Bitmap[] bmImages){ 
     bitmapList = bmImages; 

     Log.i("ContestantsPhotoAdapter", "Images passed to the adapter."); 
    } 

    @Override 
    public int getCount() { 
     return bitmapList.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent){ 
     ViewHolder holder; 

     if (convertView == null) { 
      convertView = myInflater.inflate(R.layout.grid_contestantsphoto, null); 
      holder = new ViewHolder(); 
      holder.ivIcon = (ImageView) convertView.findViewById(R.id.imvContestantsPhoto_icon); 

      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     holder.ivIcon.setImageBitmap(bitmapList[position]); 

     return convertView; 
    } 

    static class ViewHolder { 
     ImageView ivIcon; 
    } 
} 

grid_contestantsphoto.xml является:

<?xml version="1.0" encoding="utf-8"?> 

<ImageView 
    xmlns:android     = "http://schemas.android.com/apk/res/android" 
    android:id      = "@+id/imvContestantsPhoto_icon" 
    android:layout_width   = "wrap_content" 
    android:layout_height   = "100dip" 
    android:contentDescription  = "@string/menu_contentdescription" /> 

Моя проблема, когда я изменить android:layout_height = "100dip" он не вступает в силу и всегда высота такая же, как и раньше.

Скажите, пожалуйста, как уменьшить размер. Спасибо.

ответ

0

Для справок в будущем. Я изменил код адаптера на это:

public void setData(Bitmap[] bmImages){ 
     bitmapList = bmImages; 

     for(int i=0; i < bitmapList.length; i++){ 
      bitmap = bitmapList[i]; 
      bitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth(), bitmap.getWidth(), false); 
      bitmapList[i] = bitmap; 
     } 
     Log.i("ContestantsPhotoAdapter", "Images passed to the adapter."); 
    } 

Теперь высота изображений такая же, как и ширина.

0

Это действительно работает для меня! Пожалуйста, попробуйте это!

<ImageView 
     android:id="@+id/productImage" 
     android:layout_width="100px" 
     android:layout_height="100px" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:scaleType="fitCenter" 
     android:layout_marginRight="10dip" 
     android:adjustViewBounds="true" 
     android:src="@drawable/loading" /> 
+0

Спасибо, но, к сожалению, не сработало. все еще высота такая же, как и оригинальная. – Hesam

+0

Еще раз спасибо, но я думаю, что это не правильный путь, потому что ничего не вступает в силу. – Hesam

 Смежные вопросы

  • Нет связанных вопросов^_^