android在触摸事件上绘图

标签 android canvas bitmap touch-event

我正在尝试制作一个应用程序,使用户能够触摸屏幕并根据用户的手指坐标绘制图像。这是我的代码:

public class DrawingBoard extends View {

        Drawable editIcon = getResources().getDrawable(R.drawable.icon);
        Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.background);

        float xPos = 0;
        float yPos = 0; 

        public DrawingBoard (Context context) {
            // TODO Auto-generated constructor stub
            super (context);            
        }
        @Override
        protected void onDraw (Canvas canvas) {
            super.onDraw(canvas);

            canvas.save();
            canvas.drawBitmap(mBitmap, 0, 0, null);
            canvas.translate(xPos, yPos);
            editIcon.draw(canvas);
            canvas.restore();

            invalidate();
        }
        @Override
        public boolean onTouchEvent (MotionEvent event) {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN : 
                    xPos = event.getX();
                    yPos = event.getY();
                    break;
            }

            return true;

        }
    }
}

但是,每当我尝试在模拟器中点击屏幕时,都没有显示图像....

请指出我的错误...谢谢

最佳答案

onTouchEvent() 中没有 invalidate()

        @Override
        protected void onDraw (Canvas canvas) {
            super.onDraw(canvas);

            canvas.save();
            canvas.drawBitmap(mBitmap, 0, 0, null);
            canvas.translate(xPos, yPos);
            editIcon.draw(canvas);
            canvas.restore();

       //     invalidate();
        }
        @Override
        public boolean onTouchEvent (MotionEvent event) {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN : 
                    xPos = event.getX();
                    yPos = event.getY();
                    invalidate(); // add it here
                    break;
            }

            return true;

        }

关于android在触摸事件上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756806/

相关文章:

android - 我的 phonegap 3 应用程序可以在 android 和 IOS 中使用不同的包名称吗?

java - 使用 BaseAdapter 在 ListView 中显示 ArrayList

android - 在单独的图层上创建应用程序教程

javascript - 在 D3 星球 Canvas 上显示图标

node.js - 类型错误 : Cannot read property 'length' of null - Node Canvas

android - 从 UI 线程处理图像 - 说明

java - Android 中 LocationManager 的 requestLocationUpdates 到底是如何工作的?

javascript - 为假 3D 动画添加透视

c# - 在C#中将图像转换为图标

android - 从绘图缓存中获取更新的图像