Вставить изображение, чтобы дать изображение в Android

Я пытаюсь вставить изображение в статическое изображение (что-то вроде изображения внутри кадра). Я мог бы получить это в какой-то степени, но не смог правильно выразить это в данном изображении.

Оранжевая рамка - это рамка и заполнитель, которые необходимо динамически вставить в маркер на моей карте.

введите описание изображения здесь

Вот что я попробовал:

    Bitmap pic = BitmapFactory.decodeResource(getResources(),
            R.drawable.bluepic);
    Bitmap orangeframe = BitmapFactory.decodeResource(getResources(),R.drawable.orangeborder);
    Bitmap out = combineImages(orangeframe, pic);

   public Bitmap combineImages(Bitmap frame, Bitmap image) 
   {

    Bitmap cs = null;
    Bitmap rs = null;

    rs = Bitmap.createScaledBitmap(frame, image.getWidth(),
            image.getHeight(), true);

    cs = Bitmap.createBitmap(rs.getWidth(), rs.getHeight(),
            Bitmap.Config.RGB_565);

    Canvas comboImage = new Canvas(cs);

    comboImage.drawBitmap(image,0, 0, null);
    comboImage.drawBitmap(rs, 0, 0, null);

    if (rs != null) {
        rs.recycle();
        rs = null;
    }
    Runtime.getRuntime().gc();

    return cs;
}

Я получаю это:

введите описание изображения здесь

Заполнитель динамический, изображение кадра orage статическое. Я хотел бы вставить изображение непосредственно внутри оранжевого изображения программно.

Это возможно?

2 ответа

Оранжевая рамка - это изображение, верно? Вы можете наложить другой вид изображения поверх этого следующим образом:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/map_marker"/>


<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:layout_gravity="center"
    android:background="@drawable/my_placeholder"/>


</FrameLayout>

Вы можете использовать 9-патч для этого.
http://developer.android.com/tools/help/draw9patch.html

Просто определите пределы на оранжевом изображении.

А затем построить иерархию следующим образом:

<FrameLayout 
    background="static 9patch image" >
   <ImageView
       src="dynamic image"/>
</FrameLayout>
Другие вопросы по тегам