2012-12-27 81 views
5

對於我目前正在寫的程序大的位圖,我需要一個簡單的圖像編輯器。基本上,用戶只需從圖庫中選擇圖像,即可導航到此編輯器。一旦選擇了圖像編輯活動創建,並應允許用戶進行簡單的編輯操作,如旋轉,亮度調節,變焦等處理的圖像編輯器

當時我已經成功地實現了相對容易的上述功能的時刻。我的問題在於動態添加有問題的圖像到ImageView。你們中許多人可能知道; Binder事務緩衝區具有有限的固定大小,當前爲1Mb,由進程中的所有事務共享。因此,我只能將壓縮版本的位圖加載到我的ImageView中,這對我來說是一個相當大的問題(我的程序主要用於平板電腦)。我已經對這個問題進行了重要的研究,並發現可以將一個Bitmap分割成幾個較小的位圖,並將它們放置在多個ImageView中,以使用BitmapRegionDecoder(如thread中建議的)創建一個連續圖像的錯覺。雖然這成功地讓我顯示大圖片我不知道我應該如何實現使用的ImageView多個實例縮放功能。是否有一個相對簡單的方法去做這件事?

回答

3

看一看這個video from Google I/O他們開發具有圖像編輯高級畫廊的應用程序。

你可以下載源代碼的應用程序here。這是它如何打開圖像編輯活動:

private OnItemClickListener mPhotoClickListener = new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // User clicked on photo, open our viewer 
     final Intent intent = new Intent(AlbumActivity.this, PhotoActivity.class); 
     final Uri data = ContentUris.withAppendedId(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, id); 
     intent.setData(data); 
     startActivity(intent); 
    } 
}; 

該圖庫還實現圖像編輯功能。代碼可能會有所幫助。

3

您是否嘗試過這個? options.inJustDecodeBounds應該設置爲true。

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
BitmapFactory.decodeResource(getResources(), R.id.myimage, options); 
int imageHeight = options.outHeight; 
int imageWidth = options.outWidth; 
String imageType = options.outMimeType; 

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html