如何在大位图上绘制图标?

时间:2012-05-03 19:19:40

标签: android bitmap icons overlay drawable

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

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

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代码只包含一个表示整个屏幕将用于显示我的图片。

现在,我遇到了如何在我的位图上加载一些图标或绘图然后保存它的问题?我在我的选项菜单中有一个“添加”选项,我希望当我在选项菜单中按“添加”按钮时,有一个列表在我的可绘制文件中显示一些图标/可绘制,并且在我选择了一个图标后,所选图标将出现在我的原始位图图片的顶部。此外,我希望我可以将图标拖动到任意位置,然后保存。

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定你为什么这么接近这个问题。我认为将背景设置为主要绘图的标准布局会更好,但我相信LayerDrawable是您正在寻找的。

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

LayerDrawable layerDrawable = new LayerDrawable(layers);
targetImage.setImageDrawable(layerDrawable);