2017-09-22 68 views
0

我試圖用gridview顯示來自db的圖像,但它只是不起作用,並且沒有錯誤。 的代碼是好的,當我reaplcing行將圖像插入到gridview中

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

與線imageView.setImageResource(R.drawable.photo); 其做工精細的Cuz。 這似乎有問題與uri,但uri很好,即時通訊在其他地方使用相同的uris。

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

}

+0

你能共享一個前充足的uri,這是行不通的,可能有問題的格式uri –

+0

文件:///storage/emulated/0/1506112776661.jpg 100%好吧,因爲如果我試圖顯示相同的uri一個imageView的工作。 –

回答

0

試試這個

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

或者這

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

做最後的工作,你可以在評論中看到代碼im艾蕾迪試試這個 –