android画笔错位问题的解决
来源:互联网 发布:java蜘蛛爬虫 编辑:程序博客网 时间:2024/05/20 04:47
下面的画画板的代码:
public class MainActivity extends Activity {private ImageView iv;private Bitmap baseBitmap;private Canvas canvas;private Paint paint;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv = (ImageView)findViewById(R.id.iv);paint = new Paint();paint.setStrokeWidth(5);//画笔的像素paint.setColor(Color.BLACK);//画笔的颜色//此时ImageView iv还为被创建,所以为0,报错//一般情况下直接指定baseBitmap = Bitmap.createBitmap(320,350, Config.RGB_565);canvas = new Canvas(baseBitmap);canvas.drawColor(Color.RED);//用户在屏幕上移动的轨迹iv.setOnTouchListener(new OnTouchListener() {//定义手指开始位置的坐标int startX;int startY;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch(event.getAction()){case MotionEvent.ACTION_DOWN://手指第一次接触屏幕//创建一个可以被修改的BitmapSystem.out.println("手指按下");System.out.println(iv.getWidth());System.out.println(iv.getHeight());startX = (int) event.getX();startY = (int) event.getY();break;case MotionEvent.ACTION_MOVE://手指在屏幕上滑动System.out.println("手指移动");int newX = (int) event.getX();int newY = (int) event.getY();canvas.drawLine(startX, startY, newX, newY, paint);//实时更新起始点startX = (int) event.getX();startY = (int) event.getY();iv.setImageBitmap(baseBitmap);break;case MotionEvent.ACTION_UP://手指离开屏幕System.out.println("手指抬起");break;}return true;//持续响应触摸时间,true}});}public void save(View view){}}当在屏幕上画画时,鼠标和划线是错位的。
解决:
1,获取屏幕的的坐标应该用getX(),getY()方法。
2,定义的Bitmap添加在ImageView上不可以缩放或放大,也就是说bitmap指定的宽高要使得bitmap刚好充满ImageView的大小,因为,setImageBitmap方法默认会使bitmap充满整个ImageView。
那么如何获得ImageView的大小呢?
在onTouchListener方法中,ImageView已经存在了,可以在该方法中输出iv.getWidth(),iv.getHeight(),就知道了
3.最好是在配置文件里将ImageView设置成wrap_content
- android画笔错位问题的解决
- 解决TextView错位的问题
- 解决图片错位的问题
- 解决vim终端下的错位问题
- RichTextField换行表情错位 问题的解决
- android ListView中CheckBox错位的解决
- android listview 异步加载图片时出现图片错位、刷新问题的简单解决
- Android 解决某些机型CheckBox自定义按钮图片时发生的错位问题
- Android 解决APP字体随系字体大小改变造成的布局错位问题。
- Android ListView加载图片错位的问题
- Android列表页的错位问题探讨
- android开发中解决ListView异步加载图片错位问题
- 解决Android ListView中图片异步加载错位问题
- -------------解决Android ListView中图片异步加载错位问题
- android --解决GridView上下滑动出现错位问题
- Android 解决异步任务下载图片错位问题
- 【Android】ListView加载网络图片(解决图片错位问题)
- Android 画笔的使用
- 实现Runnable接口和扩展Thread使用场景
- 【中级】C++构造函数抛出异常
- 最大流HDU3549
- 机器学习源代码
- zedboard--建立Xilinx交叉编译环境(二)
- android画笔错位问题的解决
- 问题9:编程实现一个单链表的建立/测长/打印以及结点的删除。
- 利用Perf4j 对java项目进行性能监控
- rootkit hook之[三] inline hook
- ADB server didn't ACK,解决方法,亲测可用
- Android软Watchdog源码分析
- linux find命令
- java日期处理
- hdu2236 无题II (二分+最大匹配)