2012-05-03 32 views
1

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

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

请给我一个帮助,这是非常迫切的!

非常感谢!

回答

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);