ValueAnimator(好用的動畫類別)

這裡介紹簡單又好用的動畫類別 ValueAnimator ,有時候我們想做些簡單的過場動畫或是特別按鍵動畫,遊戲的實現上相當簡單,以分工而言,程式設計師基本上只要負責影格的播放即可,其他的部分都交給視覺人員來完成,但在應用程式上,各部份元件(按鈕,清單,佈局等等)就沒有影格來達到特別的動畫呈現,此時 ValueAnimator 就能達到我們的需求,先給個簡單的範例如下 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color:...

access to class not allowed

想要啟動某個 Activity ,除了在 AndroidManifest.xml 中設定外,還必須注意其存取修飾詞為 public ,當然在系統預設情況下為 public,但手動加入 Activity 時就要注意了,如果不是 public ,會出現 access to class not allowed 的例外,如下圖 解決方法就修改存取修飾詞為 public...

Logo流程(Activity+Handler+Message)

本篇實作簡單的 Logo 流程,慢慢的淡入顯示 Logo 圖示再切換到版權聲明流程,加入 Thread, Message , Handler 類別以控制 Thread 和 Activity 之間的通訊,在 Android 中基於安全性的考量,不予許非主執行緒更改主畫面的元件,一旦違反這個規則,會出現 的例外,所以我們必須考慮使用其他類別搭配達到計時改變的效果,首先準備一張代表 Logo 的圖示,並放入 res -> drawable 資料夾中(記得圖名不可使用英文大寫),接著我們使用 RelativeLayout 並加入 1 個 ImageView 元件,其內容如下 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00;...

Failed to install xxx.apk on device 'xxx': timeout

通常發生於太久時間沒有操作手機,解決方法直接拔 usb 線,重插 ...

警告提示(AlertDialog)

AlertDialog 就是警告提示,通常用在訊息的提示,比如說離開程序前,進行動作前等等,通常都會搭配按鈕讓使用者選擇,可以把它當作進階版的 Toast 視窗來使用,基本建構子如下,第1個參數為 context ps: 參數context,必須是activity的context,不可為getApplicationContext()的Context,否則會出現 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application...的例外 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00;...

設定視窗相關(全螢幕,去title,指定方向)

很多程序在運行時都會把視窗最大化(全螢幕)且去掉 title,尤其是遊戲,這樣除了可以避免不必要的觸碰之外還能讓視覺上有比較好的範圍,全螢幕必須由 Window 類別達成,如下 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } 1:...

取得手機基本資訊(SDK,手機名稱,製造商名稱...)

Android 手機上的基本硬體資訊可由 android.os 套件中提供的類別來取得,其中的 android.os.Build 類別可取得相當多的資訊,如主機板,手機名稱,內部識別碼等等,相關範例如下 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } 1: Log.v(tLog,""+Build.VERSION.SDK_INT);...

振動功能

振動功能可藉由 Vibrator 類別完成, Vibrator是相當單純的類別,直接繼承 java.lang.Object,本身也沒有任何子類別,使用方法非常簡單,不過還是需要許可才行,在 AndroidManifest.xml 加入以下許可 <uses-permission android:name="android.permission.VIBRATE" /> 接著藉由 Context 類別的 getSystemService 方法建立 Vibrator 類別的物件,如下 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #a31515; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt...

開啟網頁 + 檢查網路狀態

開啟網頁可用 Uri 搭配 Intent 來達成 , 如下 1: Uri uri = Uri.parse("http://vulpesadn.blogspot.tw/"); 2: Intent intent = new Intent(Intent.ACTION_VIEW, uri); 3: startActivity(intent); 還要記得在 AndroidManifest.xml 加入網路許可 <uses-permission android:name="android.permission.INTERNET" /> 開啟網頁在很多情況都會使用到,如離開程序之後強制連到官網, 或是在程序中有更多商品的選項時,都會直接連結到官網中,當然我們也能在連網之前先檢查網路狀態,在沒有連線的情況就能直接離開程序而不連到官網了 檢查網路狀態,必須加入存取網路許可 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 接著使用 ConnectivityManager 來取得 NetworkInfo 的 isConnected( ) 來取得連網狀態,如下 1: ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 2:   3: NetworkInfo ni = cm.getActiveNetworkInfo(); 4: if (ni != null &&...

按鈕 + 結束程序 + 啟動新 Activity

在 Android 中按鈕的產生和操作是由 Button 類別來實作, Button 可由 xml 事先定義好的方式產生,也可以在程式碼中直接建立,建立完成後必須寫出該按鈕的監聽器,並在監聽器中寫入特定方法,修改 MainActivity.java ,加入按鈕如下 MainActivity.java 1: package com.example.helloworld; 2:   3: import android.app.Activity; 4: import android.content.Context; 5: import android.content.Intent; 6: import android.graphics.Typeface; 7: import android.os.Bundle; 8: import android.view.Gravity; 9: import android.view.View; 10: import android.view.View.OnClickListener; 11: import android.widget.Button; 12: import android.widget.TextView; 13:   14: public class MainActivity extends Activity { 15:   16: static final String tLog = "Trace Log"; 17:   18: TextView...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews