發表文章

目前顯示的是 12月, 2011的文章

Canvas與drawable的使用-彈跳小球

圖片
這程式是練習drawable與canvas的應用 會需要用到timer與random seed. 小球碰到螢幕邊緣會自動彈跳.

Handler, Message 與 thread的練習

圖片
今天完成了Handler, Message,與thread的應用,研究其運作原理. android還真是深奧,這項機制可說是很重要的技術. • android 的 GUI 元件是 thread safe的 (GUI元件的使用,無法multi-thread執行) •Activity 的畫面顯示是由 UI Thread所負責的,若寫了 mutlti-thread 程式時 又想更新畫面,就必須要將 Thread 內部的一段程式碼,交由 UI Thread 來執行才行。 此時handler就派上用場了. 之前去春水堂面試時他有考這題,但是我當時還寫不出來. 現在搞懂了.

OpenGL ES API~ 一個最簡單的 GLSurfaceView 彩色立方體example

圖片
相對於windows的directX, Android 的3d是使用opengl es來對高性能3D圖形的support OpenGL ES是一套為手持和嵌入式系統設計的3D引擎API Android支持OpenGL ES1.0,即相當於OpenGL 1.3 OpenGL有自己的Surface --> GLSurfaceView GLSurfaceView需要你註冊一個Renderder,它是GLSurfaceView.Renderer接口 在Android Sample Code > graphics - API Demos有範例程式 匯入 4個檔案: GLSurfaceViewActivity.java Cube.java CubeRenderer.java layout下的hello_world.xml 再修改AndroidManifest.xml 就可以run起來了,但run起來是簡單,要研究裡面的原理跟 api用法就是之後複雜的功夫了.

ANR (Application Not Responding) issue

圖片
ANR問題是每一個Android 工程師都會遇到的. 要解決的方法很多,但AsyncTask是最佳的方法. 如下圖,activity 1要轉換到activity2,如果中間有 loading很大量的資料,就會發生ANR問題. public class DrawActivity extends Activity{ //implements OnClickListener {     /** Called when the activity is first created. */         private ImageView img1;         @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                 Toast toast=Toast.makeText(DrawActivity.this, "Welcome to 小米app...", Toast.LENGTH_LONG);         toast.show();                 new Loading().execute();     }             private class Loading extends AsyncTask<Void,Void,Void>     {         @Override         protected Void doInBackground(Void... arg0)         {                         try {                 Thread.sleep(3000);             } catch (InterruptedException e) {                 // TODO Auto-generated catch block               

andorid 動畫RotateAnimation的使用...

圖片

android textview中文亂碼變框框 問題

圖片
Eclipse對中文字還是不友善,仍會變框框. 如果直接寫: <TextView android:id="@+id/widget29" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="你做不了決定嗎" android:textSize="32sp" />     改成不要在text裡面直接賦值,把text的值放到string裡面,那麼在layout裡 面配置則是: android:text="@string/text1",然後在你的res/values/strings.xml裡面添加一條string: <string name="text"> 中文字 </string> 但在eclipse中還是框框, 但執行後就正常了...... 目前只能說先忽略框框....  

EPSON 5900L + Windows 7 x64 driver安裝方法

圖片
epson 5900L...十年前的老機器了 但是怎麼用都用不壞,非常耐操, 然後網路上有賣填充碳粉250元可印6000張 經濟又大碗.... 在XP, WIN7 32bit下使用,有驅動程式可用, 但如果是Windows 7 x64就沒辦法 (現在記憶體便宜,很多電腦都是8GB, 16GB DRAM,只有64 bit OS可支援這麼多的Memory) 官網有說5900L 不支援Win7 x64, vista x64, 於是我們總不能因為沒driver就把5900L丟了吧? 網路上找都說沒有辦法的 但我有發現其實要解決的方法其實很簡單... 準備工具: 1. VMware workstation+ 安裝好xp x86 的image.(可請人幫忙製作), 大約花8G 空間的XP IMAGE. 2.在Vmware下的XP 安裝 epson 5900L XP Driver. 3.之後只要使用vmware player就可以了,vmware會幫忙把印表機抓到guest xp內.把文件拖曳到xp桌面下就可印了.....很方便.