0
我想實現動態壁紙,用戶可以在手機桌面上設置自己的照片。android圖像裁剪和壁紙設置頁面
現在我已經成功實現了邏輯,用戶可以從android圖庫或相機本身裁剪任何照片。
在動態壁紙設置頁面上,我想實現裁剪照片預覽。爲此,我已經實現SelectImagePreference
public class SelectImagePreference extends Preference {
public SelectImagePreference(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public SelectImagePreference(Context context, AttributeSet attributeSet, int paramInt) {
super(context, attributeSet, paramInt);
setLayoutResource(R.layout.select_image_preference);
}
}
與佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:attr/theme"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:listPreferredItemHeight"
android:paddingRight="?android:scrollbarSize" >
<ImageView
android:id="@+id/picture"
android:layout_width="200px"
android:layout_height="250px"
android:layout_margin="5dp"
android:background="@drawable/pic_border"
android:contentDescription="@string/picture" />
</LinearLayout>
在onActivityResult方法我WallpaperSettings活動我試圖返回的位圖設置爲我的ImageView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
} else if (requestCode == PICK_CROP) {
try {
Bundle extras = data.getExtras();
Bitmap croppedPicture = extras.getParcelable("data");
File saveFilePath = FileUtils.createNewFile(this, FOLDER, FileUtils.getUniqueFileName(CROPPED_IMAGE_PREFIX, CROPPED_IMAGE_EXTENSION));
FileOutputStream out = new FileOutputStream(saveFilePath);
croppedPicture.compress(Bitmap.CompressFormat.JPEG, 100, out);
saveCroppedImageUrl(saveFilePath.getAbsolutePath());
ImageView pictureView = (ImageView) findViewById(R.id.picture);
pictureView.setImageBitmap(croppedPicture);
} catch (Exception e) {
e.printStackTrace();
}
}
在我的三星Note 2預覽圖片顯示可能是從〜10的一次。
我確定磁盤上存在圖片,並且位圖不爲空。如何解決這個問題?由於