2014-01-22 123 views
0

我試圖使用base64.java轉換和圖像轉換成字符串的問題是它強調.DEFAULT說DEFAULT不能得到解決或不是場。現在我看到每個例子中,我發現這是他們使用的,所以當我嘗試它時爲什麼它不工作?base64.java圖像串

整體功能,它是看起來像

private void previewCapturedImage() { 
    try { 
     // hide video preview 

     imgPreview.setVisibility(View.VISIBLE); 

     // bimatp factory 
     BitmapFactory.Options options = new BitmapFactory.Options(); 

     // downsizing image as it throws OutOfMemory Exception for larger 
     // images 
     options.inSampleSize = 8; 

     final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(), 
       options); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
     byte[] b = baos.toByteArray(); 
     String image_str = Base64.encodeToString(b, Base64.DEFAULT);   
     imgPreview.setImageBitmap(bitmap); 

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

謝謝 泰勒

回答

1

嘗試使用com.sun.org.apache.xerces.internal.impl.dv.util.Base64類只有兩個方法String encode(byte[] binary)byte[] decode(String s)

這有可能)不爲Android和b)在將來的Java版本中被刪除。

1

您是否使用了正確的Base64類?根據你的代碼示例,它應該是android.util.Base64(檢查你在導入中得到的是什麼)。

+0

我怎樣才能檢查我的進口?我只是將base64.java複製並粘貼到src文件中 – TylerM

+0

@TylerM您可以通過查看源文件的頂部來檢查導入的內容。根據IDE設置的方式,它可能會被摺疊。如果當你看到頂部時,有一行說「import com ...」加左邊的加號,點擊加號,你會看到你正在導入的所有東西 – GrouchyPanda

2

導入android.util.base64而不是org.apache.commons.codec.binary.Base64?

1

你的代碼看起來就像我的實現。我唯一能想到的就是確保你正在導入android.util.Base64,並且這些API被添加到API 8中,所以如果你的目標低於這個值,那麼你將會遇到問題。

+0

來改變剛剛在清單中的目標API對? – TylerM

+0

是的,您需要確保AndroidManaifest.xml中的android:minSdkVersion至少爲8 – GrouchyPanda