点击图片中不规则图形提示选中不同区域
来源:互联网 发布:人工智能的原理及应用 编辑:程序博客网 时间:2024/06/11 17:13
如图所示,当点击不同区域做出不同提示
首先制作背景图,然后将不同区域的图片单独截取下来,截取的楼层图必须和背景相同大,保证当所有图片重叠是是一样完整的图片
背景图:
楼层图:
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();}@Overrideprotected 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);}}}@Overridepublic 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 不规则图形点击区域判断
- 不规则imageview区域点击
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
- 如何完成在一个图片中,点击不同区域显示不同的结果
- Android不规则点击区域详解
- Android不规则点击区域详解
- Android不规则点击区域详解
- Android不规则点击区域详解
- 不规则区域响应点击事件
- Android不规则点击区域详解
- cocos2d-x 3.x 不规则点击区域
- 不规则区域的点击事件判断
- android不规则区域的点击响应思路
- 自定义控件实现不规则区域点击事件
- UGUI实现不规则区域点击响应
- VS2008中添加程序启动画面 splash screen
- WPF的动画实现方式
- JavaScript日期时间与时间戳的转换
- SQL Formatter
- 在SuSE下面修改系统语言环境变量
- 点击图片中不规则图形提示选中不同区域
- poj 1163 The Triangle【dp】
- 字符型数据存储(转自内部资料)
- dataStoreApiStackMod
- Linux的分区已经被你从Windows中删除,系统启动后停在“grub”提示符处的解决办法。
- rnqoj-103-最大利润-dp
- 评分员间可信度与Kappa统计量 Inter-rater reliability & Kappa statistics
- Countly在andoid和vps集成使用,开源的统计分析sdk
- hive行列转换总结