在android中的另一个图像上添加图像

在android中的另一个图像上添加图像,android,image,canvas,imageview,mapping,Android,Image,Canvas,Imageview,Mapping,在我的应用程序中,我想在另一个图像上添加一个图像,而且当用户放大图像时,它也应该移动,就像谷歌地图一样。 请看下图,我想动态设置标志 请建议更好的方法来完成这项任务 解决方案(XML): 解决方案(XML): 使用相对布局作为背景并将图像作为相对布局的组件放置,使用相对布局参数调整屏幕上的图像位置。您可以对相对布局本身进行缩放使用相对布局作为背景并将图像作为相对布局的组件放置,使用相对布局参数调整屏幕上的图像位置。您可以对相对布局本身应用缩放canvas@jagapathi如何在您可以使用的图

在我的应用程序中,我想在另一个图像上添加一个图像,而且当用户放大图像时,它也应该移动,就像谷歌地图一样。 请看下图,我想动态设置标志

请建议更好的方法来完成这项任务

解决方案(XML):

解决方案(XML):


使用相对布局作为背景并将图像作为相对布局的组件放置,使用相对布局参数调整屏幕上的图像位置。您可以对相对布局本身进行缩放

使用相对布局作为背景并将图像作为相对布局的组件放置,使用相对布局参数调整屏幕上的图像位置。您可以对相对布局本身应用缩放canvas@jagapathi如何在您可以使用的图像上添加画布canvas@jagapathi如何在ImageXML或dynamic方法上添加画布?编辑我的答案。再次检查。哪种方法是xml还是dynamic?编辑我的答案。再查一遍。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/t" />
    <item android:drawable="@drawable/tt" />
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="maxdorid.ir.MainActivity">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srcCompat="@mipmap/ic_launcher"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/imageView" />
</RelativeLayout>


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Resources r = getResources();
        Drawable[] layers = new Drawable[2];
        layers[0] = r.getDrawable(R.drawable.ic_alarm_off_black_24dp);
        layers[1] = r.getDrawable(R.drawable.ic_apps_black_24dp);
        LayerDrawable layerDrawable = new LayerDrawable(layers);
        ImageView imageView= (ImageView) findViewById(R.id.imageView);
        imageView.setImageDrawable(layerDrawable);
    }
}
private Bitmap overlay(Bitmap bmp1, Bitmap bmp2,int x,int y) {
    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
    Canvas canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, new Matrix(), null);
    canvas.drawBitmap(bmp2, x,y, null);
    return bmOverlay;
}