如何在Android Studio中将图像添加到位图?
问题描述:
我希望能够在位图上添加一个“兴趣点”,就像谷歌地图引脚一样,可以点击这些引脚来提供信息。如何在Android Studio中将图像添加到位图?
我只需要知道如何去加入到脚的空间,并保持它的位图的右侧点(我可以平移和缩放的位图)
对不起,我是相当新到Android Studio,并提前致谢! :)
答
您可以在位图上绘制一个对象并实现触摸回调,以验证您是否确实按下了标记。 这里有一个简单的例子:
<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
我不会建议修改位图来做到这一点。创建一个PointOfInterest对象列表并存储它们的位置。然后将它们绘制在地图图像的顶部。无需修改位图,除非您希望用户能够从另一个应用程序(例如图像库)访问它。 – vedi0boy