求助一个gridview显示数据库存储图片的uri的问题 我要实现的东西就是 已经把图片的路径存入数据库中了
现在想把 数据库中的 数据 显示在 gridview里边
如果有例子可以给我一个我现在自己做的 遇到了问题 代码在下边 请看下注释 写的很详细package com.hrblilong.tupianliulan;
public class main extends Activity
{
private Bitmap bit;
private Bitmap bit2; List<String> ll = new ArrayList<String>(); /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dbok db = new dbok(cxt);
db.open();
try
{
//这两句直接查询数据库返回值放在下边正常
bit = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(db.getImgUrlById(1)));
bit2 = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(db.getImgUrlById(2)));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
ll = db.getImgUrls(); //获取uri的数组 数组是 所有 图片路径 的集合
uri = Uri.parse(ll.get(1)); //这句依然正常有数据
db.close();
GridView gridview=(GridView)this.findViewById(R.id.gridView1);
ImageAdapter2 ia = new ImageAdapter2(this);
gridview.setAdapter(ia);//为GridView设置数据适配器
gridview.setOnItemClickListener(new OnItemClickListener()
{ public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
Toast.makeText(main.this, "你选择了" + (position + 1) + " 号图片", Toast.LENGTH_SHORT).show();
}
});
/**
* GridView适配器类,创建单元格view
* @author ameyume
*
*/
public class ImageAdapter2 extends BaseAdapter {
private Context mContext;
public ImageAdapter2(Context context) {
mContext = context;
}
public int getCount() {
return ll.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(main.this, R.layout.night_layout, null);
RelativeLayout rl = (RelativeLayout)view.findViewById(R.id.rlGridRow);
ImageView image = (ImageView)rl.findViewById(R.id.ItemImage);
TextView tv1 = (TextView)rl.findViewById(R.id.ItemText);
//Uri uri = Uri.parse(ll.get(1));
image.setImageBitmap(bit); //问题出在这里 我如果用 现在这句就可以显示 但是只显示一个图片啊
//image.setImageURI(uri.parse(ll.get(position))); //用了这句就报错 我崩溃了 ll数组中肯定有数据啊. 下边text里显示的就是数据已经正常显示了
tv1.setText(ll.get(position)+"");
//image.setImageBitmap(android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(ll.get(j))));
//tv1.setText(ll.get(j)+"");
//Toast.makeText(main.this, position+" ", Toast.LENGTH_SHORT).show();
return rl;
}
}
}gridview 数据库
现在想把 数据库中的 数据 显示在 gridview里边
如果有例子可以给我一个我现在自己做的 遇到了问题 代码在下边 请看下注释 写的很详细package com.hrblilong.tupianliulan;
public class main extends Activity
{
private Bitmap bit;
private Bitmap bit2; List<String> ll = new ArrayList<String>(); /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dbok db = new dbok(cxt);
db.open();
try
{
//这两句直接查询数据库返回值放在下边正常
bit = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(db.getImgUrlById(1)));
bit2 = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(db.getImgUrlById(2)));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
ll = db.getImgUrls(); //获取uri的数组 数组是 所有 图片路径 的集合
uri = Uri.parse(ll.get(1)); //这句依然正常有数据
db.close();
GridView gridview=(GridView)this.findViewById(R.id.gridView1);
ImageAdapter2 ia = new ImageAdapter2(this);
gridview.setAdapter(ia);//为GridView设置数据适配器
gridview.setOnItemClickListener(new OnItemClickListener()
{ public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
Toast.makeText(main.this, "你选择了" + (position + 1) + " 号图片", Toast.LENGTH_SHORT).show();
}
});
/**
* GridView适配器类,创建单元格view
* @author ameyume
*
*/
public class ImageAdapter2 extends BaseAdapter {
private Context mContext;
public ImageAdapter2(Context context) {
mContext = context;
}
public int getCount() {
return ll.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(main.this, R.layout.night_layout, null);
RelativeLayout rl = (RelativeLayout)view.findViewById(R.id.rlGridRow);
ImageView image = (ImageView)rl.findViewById(R.id.ItemImage);
TextView tv1 = (TextView)rl.findViewById(R.id.ItemText);
//Uri uri = Uri.parse(ll.get(1));
image.setImageBitmap(bit); //问题出在这里 我如果用 现在这句就可以显示 但是只显示一个图片啊
//image.setImageURI(uri.parse(ll.get(position))); //用了这句就报错 我崩溃了 ll数组中肯定有数据啊. 下边text里显示的就是数据已经正常显示了
tv1.setText(ll.get(position)+"");
//image.setImageBitmap(android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(ll.get(j))));
//tv1.setText(ll.get(j)+"");
//Toast.makeText(main.this, position+" ", Toast.LENGTH_SHORT).show();
return rl;
}
}
}gridview 数据库
Andorid ImageURI can just resolve resource on the mobile, not including SD card and networks.