我想將圖像劃分爲子圖像,當我點擊圖像的一部分時,會給出該區域的名稱,例如,這是我的問題如何識別從圖像中,或如何將圖像分割成子圖像,並用它在imageViewsandroid將圖像劃分爲子圖像,識別
謝謝你提前
我想將圖像劃分爲子圖像,當我點擊圖像的一部分時,會給出該區域的名稱,例如,這是我的問題如何識別從圖像中,或如何將圖像分割成子圖像,並用它在imageViewsandroid將圖像劃分爲子圖像,識別
謝謝你提前
在我看來@分形扳手的想法對你的情況非常好。下面列出了基本步驟。
ImageView
。例如,MultiRegionImageView
。onTouchEvent
方法。 (每當用戶觸摸視圖,此方法被稱爲)用戶觸摸圖像,從而onTouchEvent
被調用,並提供準確的觸摸點(X,Y)。
聲明另一個,其確定在該區域中的給定的點是方法或接口。例如,getRegionByPoint(int x, int y)
如果您想強調的是區域邊界,您可以使用路徑。首先,應當定義路徑,並將它們保存到一個原始文件(XML,例如),則使用區ID,取它的路徑,最後繪製路徑在主圖像。
對於在主圖像繪製路徑,你也應該重寫onDraw
方法ImageView
類和使用canvas.drawPath();
public class MultiRegionImageView extends ImageView {
RegionProvider mRegionProvider;
int mId = -1;
private Paint mPaint;
public MultiRegionImageView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mId = mRegionProvider.getRegionIdByPoint(event.getX(), event.getY());
return super.onTouchEvent(event);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(mId != -1) {
canvas.drawPath(mRegionProvider.getRegionBoundaryPath(mId), mPaint);
}
}
public interface RegionProvider{
int getRegionIdByPoint(float x, float y);
Path getRegionBoundaryPath(int id);
}
}
你應該只需要一個ImageView的顯示地圖區域。如果您覆蓋onTouchEvent(MotionEvent e),則可以獲取視圖中正在觸摸的位置。如果您在某種列表中存儲每個區域的位置和形狀,則可以檢查觸摸事件是否位於區域內(並顯示您需要的任何文本)。