2015-08-12 4 views
0

Я использую этот код java для сжатия изображения в basic4android! Однако ничего не работает!Сжатие изображения в android (b4a)

#if java 
import android.graphics.Bitmap; 
import java.io.*; 
import android.os.Environment; 
public void Resize(Bitmap mPhoto) 
{ 
    try 
    { 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     mPhoto.compress(Bitmap.CompressFormat.PNG, 50, bytes); 

     File file = new File(Environment.getExternalStorageDirectory()+"/"+"11111.jpg"); 
     file.createNewFile(); 
     FileOutputStream fo = new FileOutputStream(file); 
     fo.write(bytes.toByteArray()); 
     fo.close(); 
    } 
    catch (Exception e) {} 
} 
#end if 

Файл с файлом ExternalStorageDirectory не отображается.

ответ

0

Попробуйте сначала создать каталог в корневом каталоге, а затем записать файл в нем, как это, например:

File sdcard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdcard.getAbsolutePath() + “/your-dir-name/”); 
dir.mkdir(); 
File file = new File(dir, “11111.jpg”); 
FileOutputStream os = outStream = new FileOutputStream(file); 
os.write(bytes.toByteArray()); 
os.close(); 

И, пожалуйста, не забудьте добавить это разрешение вашего AndroidManifest-файл

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” /> 
+0

спасибо, мой друг.изображение создано! но новая проблема заключается в том, что после сжатия вместо более низкого размера размер изображения увеличивается !!! jpeg-изображение с 970 КБ теперь составляет 2 МБ !!! что мне делать ???!!! –

+0

Я нашел решение, я должен использовать: Bitmap.CompressFormat.JPEG. Тпй. –

+0

Отлично, что вы нашли для вас рабочее решение! Пожалуйста :) –