注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

android琐碎知识点汇总  

2011-09-17 15:12:28|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、得到配置文件中的的颜色并且把控件设置为这个颜色

Java代码 复制代码
  1. //得到color.xml文件里的颜色   
  2. int tmp =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色   
  3. myButton.setTextColor(tmp);  
//得到color.xml文件里的颜色  int tmp =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色  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.如果找不到相应的字体不会报错,只是在运行的时候显示不出来  
myText.setTypeface(Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"));//设置字体  fontButton.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));//用内部支持的方式设置   //注意:1.保证文件一定是ttf格式;  //2.放到assets/fonts目录下;  //3.如果找不到相应的字体不会报错,只是在运行的时候显示不出来  

3、实现手势操作和滑动操作

  3.1、首先实现他们的接口

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

 

  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. }   
@Override  public boolean onTouch(View v, MotionEvent event) {      // OnGestureListener will analyzes the given motion event   return myGestureDetector.onTouchEvent(event);   } 

  3.3、接下来,我们实现了以下6个抽象方法,其中最有用的当然是onFling()、onScroll()和onLongPress()了

Java代码 复制代码
  1. // 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发   
  2. @Override  
  3. public boolean onSingleTapUp(MotionEvent e) {    
  4. return false;       
  5. }  
// 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发  @Override  public boolean onSingleTapUp(MotionEvent e) {   return false;      }
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. }   
// 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发  @Override  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {   return false;      } 
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. }  
// 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发   @Override  public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {  return false;      }
Java代码 复制代码
  1. //记得在onCreate()方法中写上   
  2. myTextView.setOnTouchListener(this);   
  3. myTextView.setLongClickable(true);   
//记得在onCreate()方法中写上  myTextView.setOnTouchListener(this);  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 条件子句  
select * from 表名  select * from 表名 order by id desc  select name from person group by name having count(*)>1  insert into 表名(字段列表) values(值列表)  update 表名 set 字段名=值 where 条件子句  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  
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();  
SQLiteDatabase db = ....;  db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"username", 24});   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();  
SQLiteDatabase db = ....;  Cursor cursor = db.rawQuery(“select * from person”, null);  while (cursor.moveToNext()) {   int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始   String name = cursor.getString(1);//获取第二列的值   int age = cursor.getInt(2);//获取第三列的值  }  cursor.close();  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();   
  评论这张
 
阅读(766)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017