我希望能夠在位圖上添加一個「興趣點」,就像谷歌地圖引腳一樣,可以點擊這些引腳來提供信息。如何在Android Studio中將圖像添加到位圖?
我只需要知道如何去加入到腳的空間,並保持它的位圖的右側點(我可以平移和縮放的位圖)
對不起,我是相當新到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);
}
}
我可能不得不製作一個大標籤,因爲這裏可能有很多信息,他們可能需要編輯/刪除它們。 我玩過這段代碼,它有一些有用的東西,但我仍然無法獲得任何地方。你知道關於從位圖頂部的可繪製文件夾添加一個圖像(不在位圖中,像覆蓋圖),它保留在位圖的座標上(因爲我可以平移和縮放位圖),並響應觸摸所有? – SparkyMelon
我不會建議修改位圖來做到這一點。創建一個PointOfInterest對象列表並存儲它們的位置。然後將它們繪製在地圖圖像的頂部。無需修改位圖,除非您希望用戶能夠從另一個應用程序(例如圖像庫)訪問它。 – vedi0boy