2016-03-07 105 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

相關問題