0

私の活動では、いくつかの画像を表示する必要があります。アクティビティで gridview を使用すると、各行に 4 つの画像が表示されます (各画像の幅は画面の 25% です)。幅と同じサイズで画像の高さを減らす必要があります。

だから、私のUIにはグリッドビューがあり、私のimageAdapterは画像を画面に配置します。これはアダプタのコードです:

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"しても効果がなく、常に高さが以前と同じになることです。

サイズを小さくする方法を教えてください。ありがとうございました。

4

2 に答える 2

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.");
    }

現在、画像の高さは幅と同じです。

于 2012-04-07T19:07:03.933 に答える
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" />
于 2012-04-07T18:30:35.110 に答える