2014-01-22 5 views
0

Я пытаюсь использовать base64.java для преобразования и изображения в строку, используяbase64.java изображение строки

String image_str = Base64.encodeToString(bitmap, Base64.DEFAULT); 

Проблема заключается в том, что подчеркивает .DEFAULT говоря DEFAULT не может быть разрешен или не является полем , Теперь я вижу, что в каждом примере я нашел, что это то, что они используют, поэтому почему он не работает, когда я пытаюсь?

вся функция, что в выглядит как

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

, чтобы изменить целевой апи, который только в манифесте правильно? – TylerM

+0

Да, вам нужно убедиться, что андроид: minSdkVersion в AndroidManaifest.xml как минимум 8 – GrouchyPanda

Смежные вопросы