2016-03-07 78 views
0

我希望能够在位图上添加一个“兴趣点”,就像谷歌地图引脚一样,可以点击这些引脚来提供信息。如何在Android Studio中将图像添加到位图?

我只需要知道如何去加入到脚的空间,并保持它的位图的右侧点(我可以平移和缩放的位图)

对不起,我是相当新到Android Studio,并提前致谢! :)

+0

我不会建议修改位图来做到这一点。创建一个PointOfInterest对象列表并存储它们的位置。然后将它们绘制在地图图像的顶部。无需修改位图,除非您希望用户能够从另一个应用程序(例如图像库)访问它。 – vedi0boy

回答

0

您可以在位图上绘制一个对象并实现触摸回调,以验证您是否确实按下了标记。 这里有一个简单的例子:

<com.myproject.RedImageView 
    android:id="@+id/imageView" 
    android:layout_width="300dp" 
    android:layout_height="300dp" 
    android:layout_centerHorizontal="true" 
    android:layout_centerInParent="true" 
    android:layout_centerVertical="true" 
    android:background="@android:color/holo_red_dark" /> 

package com.myproject; 

public class RedImageView extends View { 

    private Paint mPaint; 
    private Rect mRect; 

    public RedImageView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    //Draw a small white rectangle on top of our red ImageView 
    private void init() { 
     mPaint = new Paint(); 
     mPaint.setColor(Color.WHITE); 

     mRect = new Rect(20, 20, 120, 120); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     canvas.drawRect(mRect, mPaint); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     //Simple touch gesture has started 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      int x = (int) event.getX(); 
      int y = (int) event.getY(); 
      //Match touch coordinates vs "Point of Interest" aka small white rectangle 
      if (mRect.contains(x, y)) { 
       Snackbar.make(this, "Clicked white", Snackbar.LENGTH_SHORT).show(); 
      } 
     } 

     return super.onTouchEvent(event); 
    } 
} 
+0

我可能不得不制作一个大标签,因为这里可能有很多信息,他们可能需要编辑/删除它们。 我玩过这段代码,它有一些有用的东西,但我仍然无法获得任何地方。你知道关于从位图顶部的可绘制文件夹添加一个图像(不在位图中,像覆盖图),它保留在位图的坐标上(因为我可以平移和缩放位图),并响应触摸所有? – SparkyMelon

相关问题