2013-01-23 82 views
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的一次。

我確定磁盤上存在圖片,並且位圖不爲空。如何解決這個問題?由於

回答