簡體   English   中英

在網格視圖中設置圖像視圖的高度和寬度

[英]set Image View height and width in Grid View

我想在我的應用程序中創建一個圖片庫

我使用網格視圖顯示圖像,但圖像顯示混亂

我如何顯示相等的圖像?例如其他圖像庫應用程序

布局文件:

<GridView
        android:id="@+id/galleryGridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"
        android:rowCount="3"
        android:stretchMode="columnWidth"
        android:verticalSpacing="0dp"
        android:horizontalSpacing="0dp" />

Java文件:

public class GalleryManager extends BaseAdapter {
    Context context;
    List<Drawable> list;

    public GalleryManager(Context context , List<Drawable> list ) {
        this.context = context;
        //this.list = list;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        try {
            ImageView imageView = new ImageView(context);
            imageView.setImageDrawable(list.get(position));
            imageView.setScaleType(ImageView.ScaleType.CENTER);
            return imageView;
        }
            catch(Exception e){
                Log.i("Tag", "getView: "+e.toString());
            }
            return null;
    }
}

嘗試

public class MyImageView extends android.support.v7.widget.AppCompatImageView {
public MyImageView(Context context) {
    super(context);
}

public MyImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public MyImageView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
   // super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int size = getContext().getResources().getDimensionPixelSize(R.dimen.space);
    setMeasuredDimension(size, size);
}
}

在dimen.xml中

<dimen name="space">100dp</dimen>

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    try {
        MyImageView imageView = new MyImageView(context);
        imageView.setImageDrawable(list.get(position));
        imageView.setScaleType(ImageView.ScaleType.CENTER);
        return imageView;
    }
        catch(Exception e){
            Log.i("Tag", "getView: "+e.toString());
        }
        return null;
}
}

嘗試在Java代碼中將圖像權重設置為1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM