簡體   English   中英

將圖像uri插入gridview

[英]Insert image uri into gridview

我正在嘗試使用GridView顯示來自db的圖像,但是它不起作用,並且沒有錯誤。 我重新上線時代碼正常

Glide.with(context).load(images.get(position)).into(imageView);

與行imageView.setImageResource(R.drawable.photo); 它的工作很好。 uri似乎有問題,但是uri很好,我在其他地方使用了相同的uri。

public class PhotoPreviewAdapter extends BaseAdapter {

private ArrayList<String> images;
private Context context;

public PhotoPreviewAdapter(Context context, ArrayList<String> images){
    this.context = context;
    this.images = images;
}

@Override
public int getCount() {
    if(images == null){
        return 0;
    }
    return images.size();
}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null) {
        convertView = LayoutInflater.from(context).inflate(R.layout.grid_item, parent, false);
    }
    ImageView imageView = (ImageView) convertView.findViewById(R.id.grid_item_image_view);
    //imageView.setImageURI(Uri.fromFile(new File(context.getFilesDir(), images.get(position))));
    //Uri uri = Uri.parse(images.get(position));
    Glide.with(context).load(images.get(position)).into(imageView);
    //imageView.setImageResource(R.drawable.takephoto);
    //Toast.makeText(context, "" + images.get(position).toString(), Toast.LENGTH_SHORT).show();
    return convertView;
}

}

public class Photo_preview extends AppCompatActivity {

private SQLiteDatabase db;
private Cursor c;
private int frontImgCol, sideImgCol, backImgCol;
private GridView gridView;
private PhotoPreviewAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_photo_preview);

    DbHelper dbHelper = new DbHelper(this);
    db = dbHelper.getWritableDatabase();

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

    c = db.rawQuery("SELECT * FROM " + DbHelper.measuresTable.MEASUREMENTS_TABLE + " ORDER BY " + DbHelper.measuresTable.COL_DATETOSORT + " DESC", null);

    frontImgCol = c.getColumnIndex(DbHelper.measuresTable.COL_FRONTIMG);
    sideImgCol = c.getColumnIndex(DbHelper.measuresTable.COL_SIDEIMAGE);
    backImgCol = c.getColumnIndex(DbHelper.measuresTable.COL_BACKIMG);

    ArrayList<String> images = new ArrayList<>();

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        images.add(c.getString(frontImgCol));
        images.add(c.getString(sideImgCol));
        images.add(c.getString(backImgCol));
    }

    adapter = new PhotoPreviewAdapter(this, images);
    gridView.setAdapter(adapter);
}

}

嘗試這個

Glide.with(context)
     .load(Uri.parse(images.get(position)))
     .into(imageView);

或這個

Glide.with(context)
         .load(Uri.fromFile(new File(images.get(position))))
         .into(imageView);

暫無
暫無

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

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