0
PHP를 실행하는 서버에서 광구 이미지를 얻으려고합니다. 유니버설 이미지 로더 라이브러리를 사용하여 이미지를 가져옵니다. 그런 다음 비트 맵을 얻은 다음 SD 카드에 저장 한 다음 다른 활동에서 갤러리를 사용하여 광구 이미지를 열려고합니다. 문제는 내가 이미지를 저장할 때 6MB보다 작아서 1MB 미만으로 압축되어 포토 갤러리 이미지를 열 수 없다는 것입니다. 이 문제를 해결할 방법이 있습니까? (이 갤러리에 직접 비트 맵을 통과 할 수 있는지 궁금 해서요 또는 압축되지 않은 이미지를 저장하는 방법이있다)Photophere 이미지를 스토리지에 압축 해제했습니다.
코드 :
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true).cacheOnDisk(true)
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)
.defaultDisplayImageOptions(defaultOptions)
.build();
ImageLoader.getInstance().init(config);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(mHotelDetailResponseData.photosphere, mImage, defaultOptions, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Log.d("Test","fail : " + failReason.getCause().getMessage());
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
Log.d("Test","complete");
writeBitmapToMemory(loadedImage);
mPhotoSphereButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("test","can continue");
Intent i = new Intent(getActivity(), PhotosphereActivity.class);
startActivityForResult(i,0);
}
});
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
Log.d("Test","progress:" +current+"/"+total);
}
});
private void writeBitmapToMemory(Bitmap bitmap) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File f = new File(Environment.getExternalStorageDirectory() + File.separator + "test.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
Log.d("test","written to : " + Environment.getExternalStorageDirectory() + File.separator + "test.jpg");
} catch (IOException e) {
e.printStackTrace();
Log.d("test","error : " + e.getMessage());
}
}
에서 열 수있는 의도를 보낼 활동 갤러리 : (압축되지 않은 광구를 열면 괜찮습니다.)
public class PhotosphereActivity extends BaseActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startPanorama();
}
private void startPanorama() {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setComponent(new ComponentName("com.google.android.gms", "com.google.android.gms.panorama.PanoramaViewActivity"));
intent.setDataAndType(Uri.parse(Environment.getExternalStorageDirectory() + File.separator + "test.jpg"), "image/*");
startActivity(intent);
}