点击图片中不规则图形提示选中不同区域
2013-10-12 16:11
525 查看
如图所示,当点击不同区域做出不同提示
首先***背景图,然后将不同区域的图片单独截取下来,截取的楼层图必须和背景相同大,保证当所有图片重叠是是一样完整的图片
背景图:
楼层图:
package com.bitcare.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; public class NavMapView extends View { private Bitmap[] mBitmaps; private OnClickBitmapListener clickBitmapListener; public NavMapView(Context context) { super(context); } public NavMapView(Context context, AttributeSet attrs) { super(context, attrs); } /** * 设置图片 * @author yubin * @date 2013-10-12 */ public final void setBitmaps(Bitmap[] bitmap) { this.mBitmaps = bitmap; invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mBitmaps != null) { for (int i = 0; i < mBitmaps.length; i++) { canvas.drawBitmap(mBitmaps[i], 0, 0, null); } } } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { which(event.getX(), event.getY()); } return true; } public void which(float x, float y) { if (mBitmaps != null) { for (int i = 0; i < mBitmaps.length; i++) { // 判断坐标点不超过图片得宽高 if ((int) x > mBitmaps[0].getWidth() || (int) y > mBitmaps[0].getHeight()) { clickBitmapListener.ClickBitmap(-1); break; } Bitmap mBitmap = mBitmaps[i]; // 判断坐标点是否是在图片得透明区域 if (mBitmap.getPixel((int) x, (int) y) != 0) { clickBitmapListener.ClickBitmap(i); break; } } } } public final void setOnClickBitmapListener(OnClickBitmapListener listener) { this.clickBitmapListener = listener; }; public static interface OnClickBitmapListener { /** * @param index -1表示超出范围 * @author yubin * @date 2013-10-12 */ void ClickBitmap(int index); } }
相关文章推荐
- 点击图片中不规则图形提示选中不同区域
- Android不规则图形点击提示选中不同区域
- 如何完成在一个图片中,点击不同区域显示不同的结果
- Android中不规则图片按钮透明区域的点击效果
- Android 不规则图形点击区域判断
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
- 实现点击图片不同区域响应不同的事件
- 点击图片特定区域实现图片动态切换(图片热点、谷歌手形切换)
- arcgis for android空间查询 点击某点,选中该点所在区域,高亮显示
- 选项卡js 改变图片的路径来实现点击和未点击的不同效果
- 点击UIButton按钮,按钮切换不同图片
- Biee插入图形时报错-超过了已配置的已允许输出提示, 区域, 行或列的最大数目
- [UnityUI]不规则图片的点击响应
- 当点击指定区域图片(精灵)进行旋转
- android不规则区域的点击响应思路
- Android不规则点击区域详解
- UGUI_不规则图片点击事件处理
- Android不规则点击区域详解
- c#图片处理之图片裁剪成不规则图形