canvas.drawBitmap(bmp, 0, 0, paint);
ImageView alteredImageView = (ImageView) this.findViewById(R.id.
AlteredImageView);
alteredImageView.setImageBitmap(alteredBitmap);
正在使用的Canvas对象上的drawBitmap方法接受源位图对象x和y偏移以及Paint对象作为参数。这使得alteredBitmap对象将包含与初始位图完全相同的信息。
可以将所有这些代码插入到“选择图片”示例中。它应该接近onActivityResult方法的末尾处,在bmp = BitmapFactory.decodeStream行之后。小心不要重复该行,如上述代码片段所示;也不要忘了添加适当的import语句。
之后,我们想要显示alteredBitmap对象。为此,使用标准的ImageView,并以alteredBitmap作为参数调用setImageBitmap。这会假设我们有一个ImageView,并且已经在布局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>