鸿 网 互 联 www.68idc.cn

当前位置 : 主页 > 网络程序脚本 > linux shell > >

Android开发知识图片跟随触摸位置移动

来源:互联网 作者:佚名 时间:2015-06-03 08:52
很简单 显示的图片跟随触摸位置的变化而变化 详见代码 [java] package cn talentsoft surfaceview; import java io InputStream; import ntent Context; import ntent res Resources; import android graphics Bitmap; import android graphics Canvas; impo

  很简单显示的图片跟随触摸位置的变化而变化详见代码

  

  [java]

package cntalentsoftsurfaceview;  

import javaioInputStream;  

import ntentContext;  
import ntentresResources;  
import androidgraphicsBitmap;  
import androidgraphicsCanvas;  
import androidgraphicsColor;  
import androidgraphicsdrawableBitmapDrawable;  
import androidviewMotionEvent;  
import androidviewSurfaceHolder;  
import androidviewSurfaceView;  

/** 
 * 演示SurfaceView类的使用图片跟随触摸位置进行移动
 */
publicclass MySurfaceView extends SurfaceView{  
// 控制surface的接口提供了控制surface的大小格式像素
private SurfaceHolder surfaceHolder;  
// 定义画布引用
private Canvas canvas;  
// x y 代表用户触摸屏幕的坐标
privatefloat x=y=;  

private Bitmap bmp;  

public MySurfaceView(Context context) {  
super(context);  
// 获取SurfaceHolder接口
        surfaceHolder = thisgetHolder();  
// 设置屏幕保持开启状态
thissetKeepScreenOn(true);  
// 获取资源文件的引用res
        Resources res=getResources();  
// 获取baby位图资源文件的输入流
        InputStream is=resopenRawResource(Rdrawableboy);  
// 创建可绘制的位图对象
        BitmapDrawable bmpDraw=new BitmapDrawable(is);  
// 通过可绘制位图对象得到位图引用
        bmp=bmpDrawgetBitmap();  
    }  

/**
     * 画布上绘制boy图片
     */
privatevoid draw() {  
try {  
// 锁定Canvas画布
            canvas = surfaceHolderlockCanvas();  
// 设置canvas画布背景为黑色
            canvasdrawColor(ColorBLACK);  
// 在画布上绘制boy位图
            canvasdrawBitmap(bmp xbmpgetWidth()/ ybmpgetHeight()/ null);    
        } catch (Exception ex) {  
        } finally {   
if (canvas != null)  
// 解锁画布并显示绘制图片
                surfaceHolderunlockCanvasAndPost(canvas);   
        }  
    }  

/**
      * 用户触摸屏幕事件  响应方法
      */
publicboolean onTouchEvent(MotionEvent event){  
         x = eventgetX();  
         y = eventgetY();  
         draw();  
returntrue;   
     }  

}  

网友评论