今天是感恩节,首先感谢峰哥,强哥和曾哥,是你们给我入的安卓的门。

这是学习安卓两个星期的第一个感觉成型的小小软件,在自己的手机上运行感觉还是很好的,毕竟这是自己用代码敲出来的东西,下面和大家分享一下一个刚刚接触安卓的初学者对学习安卓的一些感想,也算是自己安卓路的一个开端,未来的路还很长,还需要付出很多努力。

这个学期开始接触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中的Graphicspublic 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;@Overrideprotected 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.可以装到你的手机上尽情的摩擦你的屏幕让它变得更加光亮,同时可以看到绚丽的图画

神奇的手指——可以取代”切水果“的清屏小软件相关推荐

  1. 【Pygame实战】你说神奇不神奇?吃豆人+切水果结合出一款你没玩过的新游戏!(附源码)

    导语 嘿嘿!木木子今日闪现--已经给大家写了很多内容啦~ 涉及的人工智能.初学者.爬虫.数据分析(这方面的一般不过审核)游戏........ 通过这么多篇的阅读量来说还是人工智能跟游戏的阅读量多吖! ...

  2. Unity学习笔记-切水果小游戏第一发

    楼主学习Unity的时间有限,每天最多能抽出1小时看看,主要还是周末的时间了. 最近打算开发几个小游戏练练手.最简单的水果忍者就被我相中了,来吧,骚年,一起来一发. 先分析下切水果的几个要点: 1)手 ...

  3. [unity]实现切水果游戏

    初学unity, 通过查阅资料以及自己的一些见解完成了自己做的第一款游戏. 现在把代码分享出来, 仅供参考,不足之处还请指正. 游戏中有三个场景,主要用到六个c#脚本: 脚本 作用 buttonCli ...

  4. 使用NGUI模仿制作“切水果”

    只做学习之用,无任何商业元素 如有侵权,即删除 首先,载入NGUI包,完成后如下图所示: 新建一个Sprite 然后,设置UIRoot 注意:图中画圈的部分--Scaling Style设置为&quo ...

  5. Web前端--HTML+CSS+JS实现仿切水果小游戏

    目录 代码目录: 主要代码实现: 源码获取 效果演示: 代码目录: 主要代码实现: CSS样式: * {margin: 0;padding: 0;list-style-type: none;touch ...

  6. Unity3d切水果,坦克,投篮游戏视频

    unity3DGUI设计中文教程:http://url.cn/FxePDU unity3D机器人之战游戏中文教程:http://url.cn/FTMBJY unity3D切水果游戏中文教程:http: ...

  7. Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现

    Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 CutFruit (切水果(水果忍者)) 休闲小游戏快速实现 一 ...

  8. 用HTML+CSS+JS写的切水果小游戏它来了

    前言 切水果游戏曾经是一款风靡手机的休闲游戏,今天要分享的就是一款网页版的切水果游戏, 由HTML+CSS+JS实现,虽然功能和原版的相差太大,但基本的功能具备,效果逼真.感兴趣的小伙伴可收藏学习(完 ...

  9. 怎么制作切水果游戏呢?我用这种方式实现!

    游戏预览 说明 只做了一个简单的游戏 demo,实现切割的效果,没有做完整的游戏,有兴趣可以自己尝试去完成完整项目. 实现原理 水果的生成.这个可以根据自己需要,调整水果出现的位置,运动的轨迹,本篇因 ...

最新文章

  1. C语言标准库函数qsort排序的介绍与使用
  2. 如何在centos安装python3.4
  3. 昨天添加的clustrMaps,忘了截屏,今天补上,就作为我在园子里的奠基。
  4. python 面试问题_值得阅读的30个Python面试问题
  5. 2019级软件1班安卓实训总结
  6. 每月拿几百元来买基金,有意义吗?
  7. CSS animation 与 transition 有何区别?
  8. 1.java数组教程及示例知乎
  9. 力扣题目系列:1370. 上升下降字符串(Python题解)
  10. linux防挂马软件,Linux利用Python脚本检测网站挂马程序
  11. 资本家的收割阴谋---空气币FIL“挖矿”庞氏骗局还能坚持多久?
  12. 超纯水制备树脂MB-115、MB-106UP产水18.25兆欧
  13. 手机编程html流星代码,如何使用html实现流星雨的效果(代码)
  14. 13. Linux权限管理命令
  15. python bind绑定失败_Python tkinter之Bind(绑定事件)的使用示例
  16. C# CAD二次开发之基本图形
  17. mac BigSur修改系统文件方法
  18. 计算机辅助电路与设计试卷,计算机辅助电路设计_习题集(含答案).doc
  19. 世联行董事长、财务总监等辞职:大横琴“上位”,业绩暴雷持续
  20. git am, git apply, git format-patch,git diff 用法

热门文章

  1. 江苏统考计算机英语作文,2017年高考江苏卷英语作文
  2. 一缕黑暗中的火光-----------顺序图--------------优雅的建模语言
  3. MATLAB函数downsample的用法详解
  4. 蒙氏素材 色板盒1 色板盒2 色板盒3 蒙氏教具
  5. 生物信息百Jia软件(七):glimmer
  6. 用 Python 给女友做了个可能会被打死的七夕礼物 !
  7. 算法将成为人工智能时代的“科技原力”
  8. 电容的区别,关键在于介质
  9. php命令执行后门,php后门木马常用命令
  10. 布考斯基样样干_查尔斯·布考斯基经典语录