安卓的画图应用的构建

1、所需的控件:

(1)Paint:画笔,可设置画图线条颜色,粗细,锯齿有无等,用与画图的工具;

(2)Canvas:画布(需传入Bitmap对象),使用该对象可以达到自己想画的图形效果, 最后实现在位图上

如:直线,矩形,椭圆等;

(3)Bitmap:位图,实现画布图形的控件;

(4)ImageView:装载位图的控件;

(5)触屏监听器:实现OnTouchListener完成触屏画图的响应事件及操作;

2、构建过程:

(1)先定义类实现触屏监听接口(OnTouchListener)

1)要实现根据触屏操作响应画图,在监听内须提前构建画布、画笔等一系列 画图相关控件。但由于(Bitmap)位图大小需适应事件源对象(即ImageView),

应在第一次的public boolean onTouch(View v, MotionEvent event)方法中,创建 适应事件源v的(Bitmap)位图。创建位图可以调用该类的静态创建方法:

bitmap=Bitmap.creatBitmap(宽,高, 位图位数);

再创建画布:new Canvas(bitmap)

与画笔(也可在此时设置相应的属性);

2)event对象中包含着触屏的坐标与触屏的事件。根据触屏的事件执行相应 的操作:

如:MotionEvent.ACTION_DOWN(按下):获取第一次坐标

MotionEvent.ACTION_UP(松开):获取第二次坐标,并画出想要的图形

(canvas.drawLine(x1,y1,x2,y2,paint)直线、矩形、圆等等)

MotionEvent.ACTION_MOVE(移动):获取第二次坐标,以两次坐标连线,

再用第二次的坐标覆盖第一次的坐标,这样就可以画出你想画的图形;

3)因为画布canvas传入的的是位图,canvas的draw操作只是在位图中画图。 要在界面中的ImageView显示出来,就须在每次的canvas的draw操作(即位 图的更新)之后,iv.setImageBitmap(bitmap);(ImageView iv=(ImageView)v;), 相当于更新页面的显示吧;

(2)在activity.xml界面中添加一个ImageView,在activity.java中找到它,并给它设置  触屏监听器

时间: 2024-11-06 07:13:32

安卓的画图应用的构建的相关文章

[Android5 系列—] 1. 构建一个简单的用户界面

前言 安卓应用的用户界面是构建在View 和ViewGroup 这两个物件的层级之上的. View 就是一般的UI组件,像按钮,输入框等. viewGroup 是一些不可见的view的容器,用来定义子View 如何布局, 类似在一个网格或是一个垂直列表. 安卓提供了一套XML的标签词汇用来定义UI的页面显示. 定义一个线性布局 1. 在 res/layout 目录下.打开 activity_my.xml (my 是您定义的activity 的名字) 在创建工程师包含的 BlankActivity

同是压力触控技术 安卓比苹果到底强在哪?

今年年中以来,ForceTouch也就是压力触控技术成为手机行业又一万众瞩目的技术焦点.所谓的Force Touch也就是设备可以感知轻压以及重压的力度,并调出不同的对应功能. 随着中兴.华为等安卓阵营厂商推出带有ForceTouch功能的手机之后,今年9月苹果在新旗舰iPhone6s身上也搭载了3D Touch,也就是压力触控技术.ForceTouch也随着iPhone6s的热卖成为了旗舰机必须要有的"标配". 不同于当初的Touch ID技术苹果大幅领先安卓手机,今年的安卓阵营的F

你的安卓项目编译要花 10 分钟,如何缩短到 1 分钟?

痛点如果项目的代码库较大,例如大型的安卓开发项目,在构建的时候耗时较长,达到数十分钟甚至更长,分析其原因,其中一部分时间是花在构建上.在大规模开发团队中,例如上百人的开发团队,如果每个人构建一次需要花费数十分钟,那么团队每天浪费的时间是非常惊人的.除了构建时间,执行 Gradle Build 的时候很大一部分时间是花在单元测试用例的执行上,这样的问题也困扰着大规模 Gradle 的用户. 方案为了让构建提升速度,Gradle 4.0 以上版本提供了Build Cache 的功能,也就是构建缓存.

Maven 简单入门

目前我知道的java方面的构建工具有:ant,maven和gradle.其中ant较早,我也没用过.gradle出现最晚,吸取了ant和maven的一些优点,目前安卓开发主要使用的构建工具.这里不介绍gradle,介绍下maven. maven 的理念是约定俗成优于配置,怎么理解呢,就是maven默认情况下构建一个项目就会成一个默认的文件结构,像这样: 上面一个是个普通java工程(非web)的默认工程目录,如果要非要改也不是不行,但是遵守这样的规定有何不好呢? 根据上面的文件树,我们基本就可以

Android学习开篇

工作之后的做法一直是遇到哪方面不懂就去学那一方面的内容,然后记录成相应博客的形式.但还是有必要系统地学一遍安卓相关的知识,构建自己的知识体系.此处以<名师讲坛-Android开发实战经典>为基础.结合工作中解决问题用到的知识点,形成一套系统的笔记.并且输出相应的用例代码,方便以后调用.这些代码的工程将以教材提供的代码为基础,在上面进行扩展.

11.14 Daily Scrum

通过一天的努力,大家的任务基本已经完成,主界面的功能也日趋完善,后续的数据库处理和软件搜索等工作也已经开始陆续开展,到目前一共出现了三个问题急待解决,一是我们的燃尽图工作开展较晚,导致了大量已经展开的工作出现无法记录的情况,二是数据库开展的方面出现了不少的问题,由于我们才刚刚开始学习数据库的基本知识,有许多问题还没有得到解决,我们的方案是通过实例学习掌握数据库的基本技能.三是工作难题越来越多,工作量越来越大,有很多问题悬而不决,只有通过团队的合作意识的不断深入,分工的具体化的不断加深,这些问题就

React Native运行原理解析

http://blog.csdn.net/xiangzhihong8/article/details/52623852 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Facebook 于2015年9月15日推出react native for Android 版本, 加上2014年底已经开源的iOS版本,至此RN (react-native)真正成为跨平台的客户端框架.本篇主要是从分析代码入手,探讨一下RN在安卓平台上是如何构建一套JS的运行框架. 一. 整体架构 RN

从无到有写一个运维APP(一)

前言(废话):由于本人没有系统的学过JS或者安卓开发,甚至不是计算机专业出身(所以移动开发轻喷),做这个APP也是临时起意,花了一两天发现做一个基于HTML5的APP倒不是很难,所以也就有了这篇文章,再花了两天研究了一下ionic这个框架以及AngularJS,就发现肯定不会很难,所以打算写八到十篇的系列文章,这一系列的文章会从最初的环境搭建,从设计,排版,细化,再到最后的数据可视化,都会在这一系列文章写到,并且大概讲讲我对ionic以及AngularJS肤浅的认识(我会我告诉你我JavaScr

[Android系列—] 2. Android 项目目录结构与用户界面的创建

前言 在 [Android系列-] 1. Android 开发环境搭建与Hello World 这一篇中介绍了如何快速搭建Android开发环境, 并成功了建立一个没有任何代码更改的 Android 应用程序. 接下来, 就得看看 1. 使用 Eclipse  创建的APP 有哪些目录和文件 2. 如何创建一个比Hello World 高级的一个用户界面 appcompat_v7 在创建 MyFirstApp 的 Android 项目时, 会发现在项目路径下多出了一个 appcompat_v7