2014-01-22 35 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