今天是感恩节,首先感谢峰哥,强哥和曾哥,是你们给我入的安卓的门。
这是学习安卓两个星期的第一个感觉成型的小小软件,在自己的手机上运行感觉还是很好的,毕竟这是自己用代码敲出来的东西,下面和大家分享一下一个刚刚接触安卓的初学者对学习安卓的一些感想,也算是自己安卓路的一个开端,未来的路还很长,还需要付出很多努力。
这个学期开始接触Java的学习,也有将近两个月了,一方面要在学校学习公共课的科目,大二的课程之多难以想象,所以花的时间也不多,但是在这两个月里还是有了很大的收获,对Java的基本语法规则和构建有了一定的认识,也对Java类库中常用的一些类有了一定的了解,在前面也做了一些小小的东西,在了解到安卓的开发语言是Java后决定尝试安卓学习,一方面可以加深对Java语言的理解,另一方面也可以开始安卓的学习,是一举两得的事情,同时想到可以在自己的手机上运行自己的软件也很兴奋,所以在学习Java的同时开始了安卓的学习,闲话不多说,下面说一下自己在这两个星期来的一些感悟和想法。
万事开头难,但如果勇敢的迈出了第一步并坚持下去离成功也就不远了。
在两个星期前我还是一个只会从手机助手下各种软件的清纯小少年,从没有想过这些软件是怎么实现的,他的运行机制是什么,他是靠什么监听到我们的手指的点击的,也没想过自己会去做一些在自己手机上用的东西,尽管自己是软件工程的学生,感谢曾哥半小时的入门辅导。让我第一次接触到了安卓软件的开发
,也对安卓开发产生了兴趣。
在半小时的入门辅导后我开始在网上找各种各样的资料开始自己学习,21世纪的人应该懂得怎样利用网上的资源,不会就问百度,总会找到解决的方法。不要担心没老师给你上课,网上搜索一下安卓视频教程你这一辈子都学不完,下面推荐初学者一个网址http://wenku.baidu.com/course/study/858dfe00bed5b9f3f90f1c92,看完这几个小时的视频(从安卓平台的简介到安卓四大基本组件到布局管理器再到安卓的基本组件和高级控件)你对安卓开发的基本流程和语法规范也就有了简单的了解,这算是很好的入门吧,在看书看不懂的情况下就看视频,视频会用安卓的开发工具来现场演示一些组件的用法,布局的用法,看完一集视频自己就可以动手实践,加深对知识的理解,有一句话说的好“熟能生巧”对编程语言的学习更是如此,只有自己动手真正的做出来了才能说是自己对那个知识理解了,我开始时只看视频,接着一口气看完几集,中间也不做练习。到后面自己动手时才发现不知道从何处下手,我想这也是很多和我一样的初学者所困惑的,看视频的时候看懂了但是自己动手时却处处出错。所以看完一个知识点就马上上手,动手敲起来,这样对知识点的掌握就会加强很多。我自己亲生的感受是有时候单独的只看书发现书上有很多看不懂,但在我看完几集视频之后回头看书上的内容发现以前很多不懂的知识点都能看懂了,所以当我们看书感觉头昏脑涨的时候就把书放一边,看看网上的视频教程,换着来学习,这样的效率会高很多。
上面说的是在网上学习,我觉得还是需要两本实体的书籍在自己的手边,一本是讲知识点的,一本是各种开发实例,我觉得书不要多,一本书介绍知识点,各种控件,布局等等,一本则是各种例子,我自己买的一本《安卓开发实例大全》觉得挺好的,书中全是开发的例子,学习知识点后再跟着例子自习敲是一种很好的搭配,对于像我们这样的初学者来说。
以上也就是我在这两个星期的安卓学习中结合自己的一些情况有的的一些想法和感悟,对于我这样一个初学者也说不出很多在安卓方面高深的知识,只希望对像我一样的初学者能在自学时有一定的帮助,不仅仅是安卓的学习是如此,其他的也一样,找到一个好的学习方法很重要。
下面和大家分享一下今天刚刚完成的一个小小的软件,实现方法不到一百行代码,很简单,自己可以用来玩,我决定用它来取代“切水果”成为我的清洁屏幕的利器,现在玩“切水果”的目的很单纯也就是为了想把屏幕上的污渍擦干净,快速滑动手指,擦掉所有的污渍。吱吱吱吱。。。。
我的软件实现的功能很简单,就是随着手指在屏幕上滑动手指下面会有一个颜色随时变化的圆球跟着自己的手指滑动,紧接着随着手指的滑动屏幕的背景颜色也会跟着发生变化,手指滑动越快,小球和屏幕的颜色也就会变化得越快。自己感觉还是挺好看的。下面是实现的代码,有注释:
项目的工程图如下:
<?xml version="1.0" encoding="utf-8"?> <!-- 定义一个线性布局容器,是res下面的layout中的.mxl文件 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/root" > </LinearLayout>
下面是在src下面的两个.java文件,第一个(DrawView.java)是自定义一个组件,也就是自己画一个圆
package com.example.tms004; import java.util.Random; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class DrawView extends View{ public float x = 40; public float y = 40; //添加构造方法 public DrawView(Context context) { super(context); // TODO Auto-generated constructor stub } //重写父类的方法 //Canvas相当于java中的Graphics public void onDraw(Canvas canvas) { Random r = new Random(); //int m = r.nextInt(); int red = r.nextInt(256); int blue = r.nextInt(256); int green = r.nextInt(256); //必须要写的super方法 super.onDraw(canvas); //创建画笔 Paint pen = new Paint(); //设置画壁的颜色 pen.setARGB(125, red, blue, green); //绘制小圆球 canvas.drawCircle(x, y,100,pen); } }
第二个是(MainActivity.java)文件
package com.example.tms004; import java.util.Random; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; public class MainActivity extends Activity { LinearLayout lineraLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取布局文件中的LineraLayout容器 lineraLayout = (LinearLayout)findViewById(R.id.root); //创建DrawView组件 final DrawView drawView = new DrawView(this); //设置自定义组件的最大高度和宽度 drawView.setMinimumHeight(300); drawView.setMinimumWidth(300); //为组件和容器绑定Touch事件 drawView.setOnTouchListener(new OnTouchListener() { int red = 255; int n = 1; int blue = 1; int green = 255; @Override //实现onTouch方法 public boolean onTouch(View arg0, MotionEvent arg1) { //给容器lineraLayout设置背景颜色,会随着手指的移动变换颜色 Random Ran = new Random(); int red1 = Ran.nextInt(256); blue+=2; if(blue>=255) blue = 1; green--; if(green==0) green=255; //rgb(int,int,int)是一种设置颜色的方法,和java中有点不同 lineraLayout.setBackgroundColor(Color.rgb(blue,red,green)); if(red == 255) n = -1; if(red == 0) n = 1; red += n; //修改x,y,的值 drawView.x = arg1.getX(); drawView.y = arg1.getY(); //drawView组件重绘,invalidate()是自带的方法 drawView.invalidate(); //返回true表明事件已经处理 return true; } } ); //容器中添加组件 lineraLayout.addView(drawView); } }
运行效果如下:
我是用自己的手机当虚拟机来运行程序,这样就可以直接将软件装到自己的手机上了而且速度比开发工具的虚拟机快很多,你也可以用开发工具自带的虚拟机来运行程序,运行成功后如果想把软件装到自己的手机上只需要找到工程所放的文件位置打开bin目录找到那个apk文件复制到你的手机上点击安装就行。如下所示:
下面是在自己手机上运行的一些图片不是动态的看不出绚丽的效果:
安装到手机上后的图标:
运行的一些图片:
其实是有一个渐变的效果的不好演示,手指滑动的越快,球和背景的颜色就变化的越快。第一个成型的小软件,心里还是挺满足的,再接再厉,继续努力。
最后附上apk.可以装到你的手机上尽情的摩擦你的屏幕让它变得更加光亮,同时可以看到绚丽的图画
相关推荐
基于springboot教育资源共享平台源码数据库文档.zip
linux开发篇,配套视频:https://www.bilibili.com/list/474327672?sid=4493702&spm_id_from=333.999.0.0&desc=1
ReadEra 这个阅读应用能够打开下列任何格式的文档: EPUB, PDF, DOC, RTF, TXT, DJVU, FB2, MOBI, 和 CHM. 基本上来说,你可以用它阅读你的设备内存中的任何书籍或者文本文档。 这个应用与划分成章节的文档兼。,有一个书签功能,可以在你阅读的时候,自动保存你的进度。另外,它让你更改页面模式,从几种不同的主题中进行挑选(夜间,白天,棕黑色调,还有控制台)。
软件环境:KEIL4 硬件环境:STM32单片机+舵机 控制原理:通过控制输出信号的占空比调节舵机旋转的角度
基于springboot仓库管理系统源码数据库文档.zip
酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 酒店管理系统源码C++实现的毕业设计项目源码.zip,酒店管理系统源码C++实现的毕业设计项目源码.zip个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。酒店管理系统源码C++实现的毕业设计项目源码.zip酒店管理系统源码C++实现的毕业设计项目源码.zip酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕
58商铺全新UI试客试用平台网站源码
springboot vue3前后端分离 基于SpringBoot+Vue的轻量级定时任务管理系统.zip
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
4D毫米波雷达点云数据处理方法研究.caj
S M 2 2 5 8 X T 量产工具供大家下载使用
基于springboot的文物管理系统源码数据库文档.zip
基于springboot的电影院售票管理系统源码数据库文档.zip
基于Java web 实现的仓库管理系统源码,适用于初学者了解Java web的开发过程以及仓库管理系统的实现。
美容美发项目,使用django框架,前后端一体化项目
在线票务:2023年中国在线票务行业市场规模约为24.99亿元,挖掘市场蓝海新机遇 在数字浪潮的席卷下,传统的票务销售模式正经历着前所未有的变革。纸质门票逐渐淡出人们的视野,取而代之的是便捷、高效的数字和移动票务。这一转变不仅为消费者带来了前所未有的购票体验,更为在线票务平台开辟了广阔的发展空间和市场机遇。随着国民经济的持续增长和文体娱乐行业的蓬勃发展,中国在线票务行业正站在时代的风口浪尖,等待着每一位有志之士的加入。那么,这片蓝海市场究竟蕴藏着怎样的潜力?又该如何把握机遇,实现突破?让我们一同探索。 市场概况: 近年来,中国在线票务行业市场规模持续扩大,展现出强劲的增长势头。据QYResearch数据显示,2023年中国在线票务行业市场规模约为24.99亿元,尽管受到宏观经济的影响,市场规模增速放缓,但整体趋势依然向好。这一增长主要得益于国民人均收入的不断提高、电影及演出行业的快速发展以及政府政策的支持。例如,2023年财政部、国家电影局发布的《关于阶段性免征国家电影事业发展专项资金政策的公告》,为电影行业注入了强劲动力,进而推动了在线票务市场规模的扩大。 技术创新与趋势: 技术进步
基于SpringBoot的养老院管理系统源码数据库文档.zip
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
内容概要:本文档是一份详细的Go语言教程,从基础概念介绍到高级主题均有覆盖。主要内容包括Go语言的基础语法、数据类型、控制结构、函数、结构体、接口和并发编程等方面。通过具体示例介绍了如何使用Go语言进行开发。 适合人群:初学者和有一定经验的程序员都可以从这篇教程中受益,特别是那些想要快速掌握Go语言并应用于实际项目的开发者。 使用场景及目标:适用于初学者系统学习Go语言的基础知识和常用功能;也可以作为已有开发经验者的参考资料,帮助他们解决具体的编程问题,提高开发效率。 其他说明:本教程不仅包含了Go语言的基本知识点,还重点讲解了其独特的并发编程模型。读者在学习过程中应该注重理论与实践相结合,通过实际编写代码来加深理解和记忆。
基于springboot计算机基础网上考试系统源码数据库文档.zip