android編程中的瑣碎知識點匯總(1)

來源:互聯網
上載者:User

1、得到設定檔中的的顏色並且把控制項設定為這個顏色

Java代碼  
  1. //得到color.xml檔案裡的顏色  
  2. int tmp =  getResources().getColor(R.drawable.blue);//得到設定檔裡的顏色  
  3. myButton.setTextColor(tmp);  

2、設定控制項中文字的字型

Java代碼  
  1. myText.setTypeface(Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"));//設定字型  
  2. fontButton.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));//用內部支援的方式設定   
  3. //注意:1.保證檔案一定是ttf格式;  
  4. //2.放到assets/fonts目錄下;  
  5. //3.如果找不到相應的字型不會報錯,只是在啟動並執行時候顯示不出來  

3、實現手勢操作和滑動操作

  3.1、首先實現他們的介面

Java代碼  
  1. public class GestureTest extends Activity implements OnTouchListener, OnGestureListener {      
  2. ....      
  3. }   

 

  3.2、在onTouch()方法中,我們調用GestureDetector的onTouchEvent()方法,將捕捉到的MotionEvent交給 GestureDetector 來分析是否有合適的callback函數來處理使用者的手勢

Java代碼  
  1. @Override  
  2. public boolean onTouch(View v, MotionEvent event) {      
  3. // OnGestureListener will analyzes the given motion event   
  4. return myGestureDetector.onTouchEvent(event);   
  5. }   

  3.3、接下來,我們實現了以下6個抽象方法,其中最有用的當然是onFling()、onScroll()和onLongPress()了

Java代碼  
  1. // 使用者(輕觸觸控螢幕後)鬆開,由一個1個MotionEvent ACTION_UP觸發  
  2. @Override  
  3. public boolean onSingleTapUp(MotionEvent e) {   
  4. return false;      
  5. }  
Java代碼  
  1. // 使用者按下觸控螢幕、快速移動後鬆開,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE, 1個ACTION_UP觸發  
  2. @Override  
  3. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {   
  4. return false;      
  5. }   
Java代碼  
  1. // 使用者按下觸控螢幕,並拖動,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE觸發   
  2. @Override  
  3. public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {  
  4. return false;      
  5. }  
Java代碼  
  1. //記得在onCreate()方法中寫上  
  2. myTextView.setOnTouchListener(this);  
  3. myTextView.setLongClickable(true);   

4、android中Sqlite的使用

  4.1、SQLite3支援 NULL、INTEGER、REAL(浮點數字)、TEXT(字串文本)和BLOB(二進位對象)五種資料類型,但實際上SQLite3也接受 varchar(n)、char(n)、decimal(p,s) 等資料類型,只不過在運算或儲存時會轉成對應的五種資料類型。 SQLite最大的特點是你可以儲存任何類型的資料到任何欄位中,無論這列聲明的資料類型是什麼。但定義為INTEGER PRIMARY KEY的欄位只能儲存64位整數。

  4.2、SQLite可以解析大部分標準SQL語句

Sql代碼  
  1. select * from 表名  
  2. select * from 表名 order by id desc  
  3. select name from person group by name having count(*)>1  
  4. insert into 表名(欄位列表) values(值列表)  
  5. update 表名 set 欄位名=值 where 條件子句  
  6. delete from 表名 where 條件子句  

  4.3、分頁SQL與mysql類似,下面SQL語句擷取5條記錄,跳過前面3條記錄

Sql代碼  
  1. select * from Account limit 5 offset 3 或者 select * from Account limit 3,5  

  4.4、推薦使用SQLiteDatabase:

execSQL(String sql, Object[] bindArgs)方法的第一個參數為SQL語句,第二個參數為SQL語句中預留位置參數的值,參數值在數組中的順序要和預留位置的位置對應。

Sql代碼  
  1. SQLiteDatabase db = ....;  
  2. db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"username", 24});   
  3. db.close();  

  4.5、SQLiteDatabase的rawQuery() 用於執行select語句,rawQuery()方法的第一個參數為select語句;第二個參數為select語句中預留位置參數的值,如果select語句沒有使用預留位置,該參數可以設定為null。

Sql代碼  
  1. SQLiteDatabase db = ....;  
  2. Cursor cursor = db.rawQuery(“select * from person”, null);  
  3. while (cursor.moveToNext()) {  
  4.  int personid = cursor.getInt(0); //擷取第一列的值,第一列的索引從0開始  
  5.  String name = cursor.getString(1);//擷取第二列的值  
  6.  int age = cursor.getInt(2);//擷取第三列的值  
  7. }  
  8. cursor.close();  
  9. db.close();  

  4.6、使用事務操作SQLite資料庫

Java代碼  
  1. SQLiteDatabase db = ....;  
  2. db.beginTransaction();//開始事務  
  3. try {  
  4.     db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"username", 4});  
  5.     db.execSQL("update person set name=? where personid=?", new Object[]{"zhangsan", 1});  
  6.     db.setTransactionSuccessful();//調用此方法會在執行到endTransaction() 時提交當前事務,如果不調用此方法會復原事務  
  7. } finally {  
  8.     db.endTransaction();//由事務的標誌決定是提交事務,還是復原事務  
  9. }   
  10. db.close();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.