1

我是 android 开发的新手,我现在正在开发一个项目。这个项目是关于使用位图将图片加载到屏幕上。将图片加载到屏幕后,我想在加载的位图上添加一些图标/drawable,然后保存。

这是我用于将单个图像加载到屏幕的代码的一部分。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode){
    case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
        if (resultCode == RESULT_OK){
            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn,
                    null, null, null);
            if (cursor.moveToFirst()){
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                Bitmap bitmap = BitmapFactory.decodeFile(filePath);
                targetImage.setImageBitmap(bitmap);
            }
            cursor.close();
        }
        break;
    }
}

这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/background"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</ImageView>

我的 xml 代码只包含一个,这意味着整个屏幕将用于显示我的图片。

现在,我面临一个问题,如何在我的位图上加载一些图标或可绘制然后保存它?我的选项菜单中有一个“添加”选项,我希望当我在选项菜单中按下“添加”按钮时,我的可绘制文件中有一个列表显示一些图标/可绘制对象,在我选择一个图标后,选定的图标将出现在我的原始位图图片之上。另外,我希望我可以将图标拖到任意位置,然后保存。

请给我一个帮助,这是非常紧急的!

非常感谢!

4

1 回答 1

0

我不是 100% 确定您为什么要以这种方式解决问题。我认为将背景设置为主要可绘制对象的标准布局会更好,但我相信 LayerDrawable 是您正在寻找的。

Drawable[] layers = new Drawable[2];
layers[0] = bitmap;
layers[1] = icon;
... add more here

LayerDrawable layerDrawable = new LayerDrawable(layers);
targetImage.setImageDrawable(layerDrawable);
于 2012-05-03T19:35:48.240 回答