如何从android中的SQLite中检索图库和存储中的图像

时间:2013-05-06 13:15:15

标签: android sqlite

  

嘿,我是Android应用程序开发的新手。我目前正在开发   应用程序,在该应用程序的某个阶段处理图像   存储,检索和删除

     

如何在Android中存储整个图像?我怎样才能找到更多   我在SQLite上传的一张图片想要在图库视图中吗?

     

请给我一些指导或链接处理此类问题的博客   android中的图像处理

2 个答案:

答案 0 :(得分:1)

如果您正在处理图像,请将图像复制到单独的文件夹并将路径存储在数据库中;如果图像大小很小,则将图像bytearray存储在db中。

答案 1 :(得分:0)

试试这个

public class ImageConvertScreen extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
  Button img_byte,byte_img;
  ImageView image;
  TextView value;
  public ByteArrayOutputStream bos;
  public Bitmap bm;
  public byte[] bitmapdata;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nextr);       
        image = (ImageView) findViewById(R.id.img_convert); 
        value=(TextView)findViewById(R.id.convert_txt); 
        img_byte =(Button)findViewById(R.id.img_byte);
        byte_img =(Button)findViewById(R.id.byte_img);
        img_byte.setOnClickListener(this);
        byte_img.setOnClickListener(this);

      String imgName = "ic_launcher";
      String  KEY_IMG = "/mnt/sdcard/DCIM/Camera/IMG_20121021_150153.jpg";

      File f =  new File(Environment.getExternalStorageDirectory(), KEY_IMG);
      String path =Environment.getExternalStorageDirectory().getPath()+"/image4.png";
       //bm = BitmapFactory.decodeFile(path);
       bm = BitmapFactory.decodeResource(getResources(),getResId(imgName, R.drawable.class));       
       bos = new ByteArrayOutputStream(); 
       bm.compress(Bitmap.CompressFormat.JPEG, 20 , bos);


    }
    public void onClick(View v) {
  if (v == img_byte) { 
   bitmapdata = bos.toByteArray();
      Log.w("Image Conversion", String.valueOf(bitmapdata.length));
      String converted_txt=""; 
      Toast.makeText(getBaseContext(), ""+bitmapdata.length,1).show();
         for (int i = 0; i < bitmapdata.length; i++) { 
       Log.w("Image Conversion", String.valueOf(bitmapdata[i]));
          converted_txt=converted_txt+bitmapdata[i]; 
         } 
         saveImageOnSDCard1("testingImg",bitmapdata);
         value.setText(converted_txt);
         value.setVisibility(View.VISIBLE);
         image.setVisibility(View.INVISIBLE);

  } else if (v==byte_img){
    bm = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);
        image.setImageBitmap(bm);
        image.setVisibility(View.VISIBLE);
        value.setText("");
        value.setVisibility(View.INVISIBLE);
        Log.w("Image Conversion", "converted");

  }
    }
    public int getResId(String variableName, Class<?> c) {
        Field field = null;
        int resId = 0;
        try {
            field = c.getField(variableName);
            try {
                resId = field.getInt(null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resId;
    }
    public static void saveImageOnSDCard1(String imageName, byte[] data) {

        File file1 = new File(Environment.getExternalStorageDirectory()
                + "/isus/");
        if (!file1.exists()) {
            boolean isCreated = file1.mkdirs();
            Log.e("Directory Created", "Directory Created " + isCreated);
        }

        File file = new File(Environment.getExternalStorageDirectory()
                + "/isus/" + imageName + ".png");
        Log.i("path",""+file.getAbsolutePath().toString());
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(file);

            fileOutputStream.write(data);
        } catch (Exception e) {
            Log.i("err",""+e.getLocalizedMessage());
        } finally {
            try {
                fileOutputStream.close();
            } catch (Exception e2) {
            }
        }
    }
}