2017-06-16 107 views
1

在我的应用程序中,我想添加一个图像在另一个图像上,当用户放大图像时,它也应该移动,就像谷歌地图。 请各位看看下面的图像,我想将标志动态在android中的另一个图像上添加图像

enter image description here

请指点更好的方式来完成这个任务。

+0

您可以使用画布 – jagapathi

+0

@jagapathi如何在图片上添加画布 – deep

回答

0

解决方案(XML):

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

不工作,当我使用它时应用程序崩溃。 – deep

+0

哪种方法xml或动态? –

+0

编辑我的答案。再检查一遍。 –

0

使用相对布局,背景和地点图像作为相对布局的组成部分,使用相对布局参数调整屏幕上的图像位置一个适用于相对布局本身的缩放

相关问题