`

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

阅读更多

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

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

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

 

 

  • 大小: 33.3 KB
  • 大小: 43.2 KB
  • 大小: 30.8 KB
  • 大小: 48.4 KB
  • 大小: 16.1 KB
  • 大小: 14.8 KB
  • 大小: 15 KB
  • 大小: 15.5 KB
  • 大小: 16.1 KB
4
1
分享到:
评论
2 楼 rex0654335 2013-11-29  
不明觉厉。
1 楼 布衣Sao年 2013-11-29  
   

相关推荐

    Fluent电弧,激光,熔滴一体模拟 UDF包括高斯旋转体热源、双椭球热源(未使用)、VOF梯度计算、反冲压力、磁场力、表面张力,以及熔滴过渡所需的熔滴速度场、熔滴温度场和熔滴VOF

    Fluent电弧,激光,熔滴一体模拟。 UDF包括高斯旋转体热源、双椭球热源(未使用)、VOF梯度计算、反冲压力、磁场力、表面张力,以及熔滴过渡所需的熔滴速度场、熔滴温度场和熔滴VOF。

    基于协同过滤算法商品推荐系统.zip

    基于协同过滤算法商品推荐系统.zip

    锂电池半自动带电液舱标准手套箱(sw16可编辑+工程图)全套技术资料100%好用.zip

    锂电池半自动带电液舱标准手套箱(sw16可编辑+工程图)全套技术资料100%好用.zip

    jquery实现的网页版扫雷小游戏源码.zip

    这是一款基于jQuery实现的经典扫雷小游戏源码,玩家根据游戏规则进行游戏,末尾再在确定的地雷位置单击右键安插上小红旗即可赢得游戏!是一款非常经典的jQuery游戏代码。本源码改进了获胜之后的读数暂停功能。另外建议用户使用支持HTML5与css3效果较好的火狐或谷歌等浏览器预览本源码,可以看到地图的远景拉伸效果。

    Android studio 健康管理系统期末大作业App源码

    Android studio 健康管理系统期末大作业App源码

    校园表白墙网站源码、表白墙网站制作、网页表白墙源码

    校园表白墙网站源码、表白墙网站制作、网页表白墙源码 效果演示https://www.hybiaobai.cn/ 校园表白墙网站源码、表白墙网站制作、网页表白墙源码

    文字生成视频-可灵1.6

    In the video, a person stands alone in a snowy night, holding a delicate wine cup, with a desolate expression. The snowflakes are falling gently, and the person seems lost in deep thoughts and memories. They take a few steps, as if trying to follow the wind, with a sense of yearning and melancholy. The background shows an ancient Chinese-style house with eaves covered in snow, adding to the lonely and nostalgic atmosphere. The person's movements are slow and graceful, reflecting the complex emot

    ①软件 程序 网站开发路面附着系数估计,采用UKF和EKF两种算法 软件为Matlab Simulink,非Carsim联合仿真 dugoff轮胎模块:纯simulink搭非代码 整车模块:7自由

    ①软件 程序 网站开发路面附着系数估计,采用UKF和EKF两种算法。 软件为Matlab Simulink,非Carsim联合仿真。 dugoff轮胎模块:纯simulink搭非代码 整车模块:7自由度整车模型 估计模块:无迹卡尔曼滤波,扩展卡尔曼滤波,均是simulink现成模块应用无需S-function 带有相关文献和估计说明

    基于Spring Boot的在线考试系统--论文.zip

    基于Spring Boot的在线考试系统--论文.zip

    基于多边形逼近与仿射不变量的部分遮挡物体识别算法

    内容概要:本文介绍了一种新方法,用于识别仅由轮廓表示的部分遮挡物体。该方法通过对拐点检测来创建对象的近似多边形形状描述符,并采用一种简单易实施的匹配算法。描述符能够对噪声和部分遮挡保持较好的鲁棒性,在计算机视觉应用中尤其有效。研究涉及多种测试,涵盖人工数据、现实世界图像及不同条件下的变化(如加性高斯噪声、部分遮挡等),展示了良好的效果以及相较于同类方法的优势。 适用人群:从事计算机视觉相关工作的科研人员及技术人员。 使用场景及目标:适用于需要自动化的部分遮挡目标检测和匹配的各种应用场景,尤其是在机器学习项目中涉及光学字符识别等领域。通过使用该算法可以提高复杂环境中物体匹配的成功率,增强系统鲁棒性和适应范围。 其他说明:作者还讨论了关于边界表示法的一些优缺点并提出未来改进方向,例如自动生成迭代次数及引入新的层级化匹配策略。此外,文中提到的所有实验均在标准条件下进行,但当应用于实际环境中时可能需要额外调整参数以达到最佳性能。

    【Python】基于Python的美篇高清图片爬虫.zip

    【Python】基于Python的美篇高清图片爬虫

    node-v14.17.5-x64 msi安装包

    node-v14.17.5-x64 msi安装包

    ie8 升级到ie11 离线安装包

    ie8 升级到ie11 离线安装包 先安装补丁,再安装ie,某个补丁安装不上就跳过,先安装其他补丁,再回来安装。最后能装IE11就可以了

    设计与实现基于JavaWeb的校园兼职信息平台-毕业设计课程设计.zip

    Title: 《设计与实现基于JavaWeb的校园兼职信息平台——毕业设计/课程设计》 项目概述 本项目是一款针对校园环境的兼职信息平台,旨在为学生提供寻找兼职工作的机会,同时为企业提供一个发布兼职信息的平台。该平台采用JavaWeb技术,结合SSM(Spring, SpringMVC, MyBatis)框架开发,专注于解决学生兼职信息不对称的问题。 功能模块 兼职信息发布:企业用户可以发布兼职信息,包括职位描述、要求、薪资等。 兼职信息浏览:学生用户可以浏览兼职信息,并根据条件筛选合适的兼职。 评论与反馈:用户可以对兼职信息和雇主进行评论和反馈。 用户管理:包括学生和企业用户的注册、登录、信息修改等。 消息通知:系统会向用户推送相关的兼职信息和评论通知。 项目特色 评论功能(Comment Part-time):学生可以对企业发布的兼职进行评价,帮助其他学生更好地选择兼职。 信息审核:确保兼职信息的真实性和有效性。 用户互动:提供私信功能,方便学生与企业之间的沟通。 项目目标 帮助学生更快地找到合适的兼职工作。 为企业提供高效的人才招聘渠道。 增强校园内的就业服务和信息交流。 开发流

    基于springboot的应急救援物资管理系统.zip

    基于springboot的应急救援物资管理系统.zip

    用Python开发 Telegram 接口:涵盖用户登录、好友列表及聊天功能-含可运行代码及解释说明

    内容概要:本文档详细讲解了利用 Python 和 python-telegram-bot 库创建一个简易但实用性强的 Telegram 接口的方法。主要内容涵盖了从配置所需环境(如安装相关库)、编写登录验证逻辑,到实现获取好友列表和实施即时通信(聊天)等功能的具体代码演示及解释。文中还提供了关于用户认证的基本方法、简单用户数据模拟、基本的日志记录方式,以及启动机器人并维持监听状态的操作指导,最后提醒开发者替换成自己的 bot token 并指出了一些安全方面的考量,比如严格验证用户输入以保障应用程序的安全性。 适合人群:对于有兴趣探索社交平台集成或是初次接触即时通讯软件自动化构建,尤其是想基于 Python 来快速搭建一个 Telegram Bot 的初学者或是拥有基础编程经验的人士来说非常适合。 使用场景及目标:适用于想要快速建立个人或者小团队之间的信息交流渠道,测试和熟悉 Telegram Bot API 的工作机制,以及进一步理解和提升在社交平台上自动化工具开发技能的情况。这有助于加深理解 API 调用流程、异步消息传输机制等相关知识点,同时也可以作为更大规模项目的基础模块之一来考虑扩展。 其他说明:本指南侧重于理论联系实际的应用层面教学,不仅提供了完整的代码案例让读者可以亲手操作,还强调了良好编码习惯的重要性(像添加适当的注释),并且提及到了未来可能遇到的技术挑战——例如用户数据的真实保存与维护(推荐采用数据库解决方案)。这对于提高读者的实际动手能力和激发更多自主思考都起到了积极作用。

    手搓人工神经网络的教程

    手搓人工神经网络的教程。在CSDN文章中也有,但CSDN文章排版略有偏差,因此附上pdf文档

    回旋提升式柔性链输送机sw16可编辑全套技术资料100%好用.zip

    回旋提升式柔性链输送机sw16可编辑全套技术资料100%好用.zip

    视觉点胶+伺服打螺丝+压装+电测试生产线x_t全套技术资料100%好用.zip

    视觉点胶+伺服打螺丝+压装+电测试生产线x_t全套技术资料100%好用.zip

    基于java的准妈妈孕期交流平台设计新版源码+数据库+说明

    调试过可以运行。 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9

Global site tag (gtag.js) - Google Analytics