¿Cómo dibujar un icono sobre un gran mapa de bits?

Soy nuevo en el desarrollo de Android y ahora estoy desarrollando un proyecto. Este proyecto se trata de cargar una imagen en la pantalla utilizando un mapa de bits. Después de cargar la imagen en la pantalla, quiero agregar un icono/dibujable encima del mapa de bits cargado y luego guardarlo.

Aquí hay parte de mis códigos que se usan para cargar una sola imagen en la pantalla.

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

Aquí está mi código 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>

mi código xml contiene solo un lo que significa que toda la pantalla se utilizará para mostrar mi imagen.

Ahora, tengo un problema con la forma de cargar algunos íconos o elementos dibujables en la parte superior de mi mapa de bits y luego guardarlo. Tengo una opción "agregar" en mi menú de opciones, espero que cuando presione el botón "agregar" en el menú de opciones, haya una lista que muestre algunos íconos/dibujables en mi archivo dibujable, y después de seleccionar un ícono, el ícono seleccionado aparecerá en la parte superior de mi imagen de mapa de bits original. Además, espero poder arrastrar el ícono a una ubicación arbitraria y luego guardarlo.

Por favor denme una ayuda y es muy urgente!

¡Muchas gracias!

preguntado el 03 de mayo de 12 a las 20:05

1 Respuestas

No estoy 100% seguro de por qué estás abordando el problema de esta manera. Creo que un diseño estándar con el fondo establecido en su dibujable principal funcionaría mejor, pero creo que lo que está buscando es un LayerDrawable.

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

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

contestado el 03 de mayo de 12 a las 20:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.