canvas.drawBitmap(bmp, 0, 0, paint);
ImageView alteredImageView = (ImageView) this.findViewById(R.id.
AlteredImageView);
alteredImageView.setImageBitmap(alteredBitmap);
正在使用的Canvas對象上的drawBitmap方法接受源位圖對象x和y偏移以及Paint對象作為參數(shù)。這使得alteredBitmap對象將包含與初始位圖完全相同的信息。
可以將所有這些代碼插入到“選擇圖片”示例中。它應該接近onActivityResult方法的末尾處,在bmp = BitmapFactory.decodeStream行之后。小心不要重復該行,如上述代碼片段所示;也不要忘了添加適當?shù)膇mport語句。
之后,我們想要顯示alteredBitmap對象。為此,使用標準的ImageView,并以alteredBitmap作為參數(shù)調用setImageBitmap。這會假設我們有一個ImageView,并且已經(jīng)在布局XML中聲明其id為alteredImageView。
以下是更新后的布局XML,它用于完整的“選擇圖片”示例,其中包含了初始的ImageView以及用于alteredBitmap的新ImageView,如圖3-4所示。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Choose Picture"
android:id="@+id/ChoosePictureButton"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ChosenImageView"></ImageView>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/AlteredImageView"></ImageView>
</LinearLayout>