2011-06-17 6 views
1

Как я могу сохранить значок в Blob?
кто-то пожалуйста, помогите мне по этой темеПреобразование Blob в android

Drawable icon = p.applicationInfo.loadIcon(getPackageManager()); 
Blob b; 

меня попробовать это ::

button1 = (Button)findViewById(R.id.button1); 
     try{ 
     ImageView iv = (ImageView) findViewById(R.id.splashImageView); 
     ImageView iv2 = (ImageView)findViewById(R.id.imageView1); 

     Drawable d =iv.getBackground(); 
     BitmapDrawable bitDw = ((BitmapDrawable) d); 
     Bitmap bitmap = bitDw.getBitmap(); 
     System.out.println(".....d....."+d); 
     System.out.println("...bitDw...."+bitDw); 
     System.out.println("....bitmap...."+bitmap); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); 

     byte[] imageInByte = stream.toByteArray(); 
     System.out.println("imageInByte"+imageInByte); 

     String s = imageInByte.toString(); 
     byte[] imageInByte2 = s.getBytes(); 
     Bitmap btmp = convertByteArrayToBitmap(imageInByte2); 
     /*iv.setImageResource(R.drawable.icon);*/ 

     iv2.setImageBitmap(btmp); 





     }catch (Exception e) { 
      e.printStackTrace(); 
    } 



     // i1.insertDataUser("tableName",3,"appname","pname", "versionName", 2,"s", 2121); 
     /* int a = i1.GetUserData(getApplicationContext(), "tablename",1); 

     System.out.println("a is "+a); 

     System.out.println(" i1.app_id"+i1.app_name); 
     System.out.println(" i1.app_id"+i1.pname); 
     System.out.println(" i1.app_id"+i1.version_name); 
     System.out.println(" i1.app_id"+i1.versionCode); 
     System.out.println(" i1.app_id"+i1.date); 
     System.out.println(" i1.app_id"+i1.icon);*/ 




} 
public static Bitmap convertByteArrayToBitmap(
     byte[] byteArrayToBeCOnvertedIntoBitMap) { 

    Bitmap bitMapImage = BitmapFactory.decodeByteArray(
      byteArrayToBeCOnvertedIntoBitMap, 0, 
      byteArrayToBeCOnvertedIntoBitMap.length); 
    return bitMapImage; 
} 
+0

Попробуйте преобразовать вытяжке в байт [], а затем сохранить его. –

+0

ya Я делаю это, но это проблема с повышением, когда я храню значения в Drawable to byte –

+0

is not this http://stackoverflow.com/questions/6384439/convert-drawable-to-blob-datatype-sqlite-problem, что и вы опубликовали 1 час раньше? –

ответ

0

Я вижу конвертировании из Drawable в растровое изображение в любом случае, так что вы можете использовать это:

import android.util.Base64; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import java.io.ByteArrayOutputStream; 

//use this method 
private byte[] getBase64Bytes(Bitmap bitmap) { 
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); 
    byte[] byteArray = byteArrayOutputStream.toByteArray(); 
    return Base64.encode(byteArray, Base64.DEFAULT); 
} 

Конвертировать из Bitmap в byteArray. Вы можете сохранить это как капля в базе данных:

Bitmap myBitmap; //should be initialized to some value 
byte[] byteArray = getBase64Bytes(myBitmap); 

Для полноты картины, как конвертировать из ByteArray, в растровое изображение снова

public Bitmap getImageFromBase64Blob(byte[] blob){ 
     byte[] byteArray = Base64.decode(blob, Base64.DEFAULT); 
     Bitmap bitmap= BitmapFactory.decodeByteArray(byteArray , 0, byteArray.length); 
     return bitmap; 
} 
Смежные вопросы