【问题标题】:How to draw a icon over a big bitmap?如何在大位图上绘制图标?
【发布时间】:2012-05-03 19:19:39
【问题描述】:

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

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

请帮帮我,很紧急!

非常感谢!

【问题讨论】:

    标签: android bitmap icons overlay drawable


    【解决方案1】:

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

    Drawable[] layers = new Drawable[2];
    layers[0] = bitmap;
    layers[1] = icon;
    ... add more here
    
    LayerDrawable layerDrawable = new LayerDrawable(layers);
    targetImage.setImageDrawable(layerDrawable);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多