神奇的手指——可以取代”切水果“的清屏小软件
? ? ? ?今天是感恩節(jié),首先感謝峰哥,強哥和曾哥,是你們給我入的安卓的門。
? ? ? ? 這是學(xué)習(xí)安卓兩個星期的第一個感覺成型的小小軟件,在自己的手機上運行感覺還是很好的,畢竟這是自己用代碼敲出來的東西,下面和大家分享一下一個剛剛接觸安卓的初學(xué)者對學(xué)習(xí)安卓的一些感想,也算是自己安卓路的一個開端,未來的路還很長,還需要付出很多努力。
? ? ? ? ?這個學(xué)期開始接觸Java的學(xué)習(xí),也有將近兩個月了,一方面要在學(xué)校學(xué)習(xí)公共課的科目,大二的課程之多難以想象,所以花的時間也不多,但是在這兩個月里還是有了很大的收獲,對Java的基本語法規(guī)則和構(gòu)建有了一定的認識,也對Java類庫中常用的一些類有了一定的了解,在前面也做了一些小小的東西,在了解到安卓的開發(fā)語言是Java后決定嘗試安卓學(xué)習(xí),一方面可以加深對Java語言的理解,另一方面也可以開始安卓的學(xué)習(xí),是一舉兩得的事情,同時想到可以在自己的手機上運行自己的軟件也很興奮,所以在學(xué)習(xí)Java的同時開始了安卓的學(xué)習(xí),閑話不多說,下面說一下自己在這兩個星期來的一些感悟和想法。
? ? ? ? ?萬事開頭難,但如果勇敢的邁出了第一步并堅持下去離成功也就不遠了。
? ? ? ? ?在兩個星期前我還是一個只會從手機助手下各種軟件的清純小少年,從沒有想過這些軟件是怎么實現(xiàn)的,他的運行機制是什么,他是靠什么監(jiān)聽到我們的手指的點擊的,也沒想過自己會去做一些在自己手機上用的東西,盡管自己是軟件工程的學(xué)生,感謝曾哥半小時的入門輔導(dǎo)。讓我第一次接觸到了安卓軟件的開發(fā)
,也對安卓開發(fā)產(chǎn)生了興趣。
? ? ? ? ? ?在半小時的入門輔導(dǎo)后我開始在網(wǎng)上找各種各樣的資料開始自己學(xué)習(xí),21世紀的人應(yīng)該懂得怎樣利用網(wǎng)上的資源,不會就問百度,總會找到解決的方法。不要擔(dān)心沒老師給你上課,網(wǎng)上搜索一下安卓視頻教程你這一輩子都學(xué)不完,下面推薦初學(xué)者一個網(wǎng)址http://wenku.baidu.com/course/study/858dfe00bed5b9f3f90f1c92,看完這幾個小時的視頻(從安卓平臺的簡介到安卓四大基本組件到布局管理器再到安卓的基本組件和高級控件)你對安卓開發(fā)的基本流程和語法規(guī)范也就有了簡單的了解,這算是很好的入門吧,在看書看不懂的情況下就看視頻,視頻會用安卓的開發(fā)工具來現(xiàn)場演示一些組件的用法,布局的用法,看完一集視頻自己就可以動手實踐,加深對知識的理解,有一句話說的好“熟能生巧”對編程語言的學(xué)習(xí)更是如此,只有自己動手真正的做出來了才能說是自己對那個知識理解了,我開始時只看視頻,接著一口氣看完幾集,中間也不做練習(xí)。到后面自己動手時才發(fā)現(xiàn)不知道從何處下手,我想這也是很多和我一樣的初學(xué)者所困惑的,看視頻的時候看懂了但是自己動手時卻處處出錯。所以看完一個知識點就馬上上手,動手敲起來,這樣對知識點的掌握就會加強很多。我自己親生的感受是有時候單獨的只看書發(fā)現(xiàn)書上有很多看不懂,但在我看完幾集視頻之后回頭看書上的內(nèi)容發(fā)現(xiàn)以前很多不懂的知識點都能看懂了,所以當我們看書感覺頭昏腦漲的時候就把書放一邊,看看網(wǎng)上的視頻教程,換著來學(xué)習(xí),這樣的效率會高很多。
? ? ? ? ?上面說的是在網(wǎng)上學(xué)習(xí),我覺得還是需要兩本實體的書籍在自己的手邊,一本是講知識點的,一本是各種開發(fā)實例,我覺得書不要多,一本書介紹知識點,各種控件,布局等等,一本則是各種例子,我自己買的一本《安卓開發(fā)實例大全》覺得挺好的,書中全是開發(fā)的例子,學(xué)習(xí)知識點后再跟著例子自習(xí)敲是一種很好的搭配,對于像我們這樣的初學(xué)者來說。
? ? ? ? ? 以上也就是我在這兩個星期的安卓學(xué)習(xí)中結(jié)合自己的一些情況有的的一些想法和感悟,對于我這樣一個初學(xué)者也說不出很多在安卓方面高深的知識,只希望對像我一樣的初學(xué)者能在自學(xué)時有一定的幫助,不僅僅是安卓的學(xué)習(xí)是如此,其他的也一樣,找到一個好的學(xué)習(xí)方法很重要。
? ? ? ? ? 下面和大家分享一下今天剛剛完成的一個小小的軟件,實現(xiàn)方法不到一百行代碼,很簡單,自己可以用來玩,我決定用它來取代“切水果”成為我的清潔屏幕的利器,現(xiàn)在玩“切水果”的目的很單純也就是為了想把屏幕上的污漬擦干凈,快速滑動手指,擦掉所有的污漬。吱吱吱吱。。。。
? ? ? ? ? 我的軟件實現(xiàn)的功能很簡單,就是隨著手指在屏幕上滑動手指下面會有一個顏色隨時變化的圓球跟著自己的手指滑動,緊接著隨著手指的滑動屏幕的背景顏色也會跟著發(fā)生變化,手指滑動越快,小球和屏幕的顏色也就會變化得越快。自己感覺還是挺好看的。下面是實現(xiàn)的代碼,有注釋:
項目的工程圖如下:
?
? ? 下面是在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;//添加構(gòu)造方法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);//創(chuàng)建畫筆Paint pen = new Paint();//設(shè)置畫壁的顏色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);//創(chuàng)建DrawView組件final DrawView drawView = new DrawView(this);//設(shè)置自定義組件的最大高度和寬度drawView.setMinimumHeight(300);drawView.setMinimumWidth(300);//為組件和容器綁定Touch事件drawView.setOnTouchListener(new OnTouchListener() {int red = 255;int n = 1;int blue = 1;int green = 255;@Override//實現(xiàn)onTouch方法public boolean onTouch(View arg0, MotionEvent arg1) {//給容器lineraLayout設(shè)置背景顏色,會隨著手指的移動變換顏色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)是一種設(shè)置顏色的方法,和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表明事件已經(jīng)處理return true;}});//容器中添加組件lineraLayout.addView(drawView);} }? ? 運行效果如下:
? ? ? ? ?我是用自己的手機當虛擬機來運行程序,這樣就可以直接將軟件裝到自己的手機上了而且速度比開發(fā)工具的虛擬機快很多,你也可以用開發(fā)工具自帶的虛擬機來運行程序,運行成功后如果想把軟件裝到自己的手機上只需要找到工程所放的文件位置打開bin目錄找到那個apk文件復(fù)制到你的手機上點擊安裝就行。如下所示:
?
?下面是在自己手機上運行的一些圖片不是動態(tài)的看不出絢麗的效果:
安裝到手機上后的圖標:
?運行的一些圖片:
?
?
?
?
?
其實是有一個漸變的效果的不好演示,手指滑動的越快,球和背景的顏色就變化的越快。第一個成型的小軟件,心里還是挺滿足的,再接再厲,繼續(xù)努力。
最后附上apk.可以裝到你的手機上盡情的摩擦你的屏幕讓它變得更加光亮,同時可以看到絢麗的圖畫
?
?
總結(jié)
以上是生活随笔為你收集整理的神奇的手指——可以取代”切水果“的清屏小软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift语法学习--数组
- 下一篇: 什么软件可以将win窗口进行置顶_【玩转