写在阅读之前:我现在正在学习android开发,在学习的过程中记下了一些自己感兴趣的知识点,没有按照书本上面的抄下来,仅凭记忆和自己的理解进行记录的,所以一定有很多地方会出现各种各样的错误,学习嘛就是一个不断拓宽自己的知识纠正以前错误的一个过程,如果大家发现有错误的地方请您一定要纠正我,这样大家都能进步!!!!
1.Cursor:在一些需要检索联系人的程序中,我们会用到cursor对查询出来的联系人进行一些必要的排列,首先会用到ContentResolver的对象content,然后调用方法得到cursor=content.query(Contacts.People.CONTENT_URI, people_projection,
null, null, Contacts.People.DEFAULT_SORT_ORDER);
现在联系人的各项信息就在游标中了,我们可以利用游标找到我们需要的一项或者是多项信息,如姓名或者是电话号码等:
String name=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.People.NAME));
String number=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.People.NUMBER));
这样就得到了姓名和电话号码,但是我们的联系人通常是很多的,所我我们要一个一个的检索,这个时候可以调用方法cursor.MoveToFirst()把指针指向第一个记录。
2.手机震动:设置手机在转页或者点击按钮或者在游戏时震动要用到vibrator对象,首相创建一个vibrator对象vb,然后调用方法vb.vibrate(long[] pattern, int repeat)就可以了,例如vb.vibrate(new long[]{100,10,1000},-1),注意:前面三个参数代表震动的强度,后面的-1代表只震动一次,如果是0就一直震动下去。
3.startActivityForResult(Intent intent,int COUNT): 这是启动另外一个Activity,然后返回获得的值,另外需要复写onCreateResult()方法以处理获得的值。例如:
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
switch(requestCode)
{
case COUNT:……….
}
}
4.关于布局:我们可以对一个控件添加一些布局,比如说对spinner的item添加图片和文字,这个时候我们就可以再代码区编写一些代码进行添加了。例如:
Linnerlayout ll=new Linnerlayout();
ll.setOretation(####);//这里是设置布局方向的
ImageView iv=new ImageView();
iv.setResorcg(R.drawable.#);
ll.add(iv);//向ll添加一图片,用同样的方法还可以为ll添加TextView控件,最后把这些内容要放在一个内容适配器(BasicAdapter ba=new BasicAdapter(){…….//在这里放置上面的代码}),最后spinner.setAdapter一下就可以了。具体实例(红色内容):
package com.bn.chap5.adp;
import android.app.Activity;
。。。。。。
public class Sample5_8_Activity extends Activity {
final static int WRAP_CONTENT=-2;//表示WRAP_CONTENT的常量
//所有资源图片(足球、篮球、排球)id的数组
int[] drawableIds={R.drawable.football,R.drawable.basketball,R.drawable.volleyball};
//所有资源字符串(足球、篮球、排球)id的数组
int[] msgIds={R.string.zq,R.string.lq,R.string.pq};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化Spinner
Spinner sp=(Spinner)this.findViewById(R.id.Spinner01);
//为Spinner准备内容适配器
BaseAdapter ba=new BaseAdapter()
{
@Override
public int getCount() {
return 3;//总共三个选项
}
@Override
public Object getItem(int arg0) { return null; }
@Override
public long getItemId(int arg0) { return 0; }
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
//初始化LinearLayout
LinearLayout ll=new LinearLayout(Sample5_8_Activity.this);
ll.setOrientation(LinearLayout.HORIZONTAL); //设置朝向
//初始化ImageView
ImageView ii=new ImageView(Sample5_8_Activity.this);
ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0]));//设置图片
ll.addView(ii);//添加到LinearLayout中
//初始化TextView
TextView tv=new TextView(Sample5_8_Activity.this);
tv.setText(" "+getResources().getText(msgIds[arg0]));//设置内容
tv.setTextSize(24);//设置字体大小
tv.setTextColor(R.color.black);//设置字体颜色
ll.addView(tv);//添加到LinearLayout中
return ll;
}
};
sp.setAdapter(ba);//为Spinner设置内容适配器
//设置选项选中的监听器
sp.setOnItemSelectedListener(
。。。。。。。
};
}
}
5.为Toast添加图片:
View textview=toast.getView();
LinnerLayout ll=new LinnerLayout();
吧图片和文字加入ll然后toast.setView(ll);最后toast.show()就可以了。
6.设置开机启动画面变换:
ImageView iv=(ImageView)find……;
AlphaAnimation aa=new AlphaAnimation(0.1f,1.0f);//画面渐变
aa.setDuration(3000);//画面停留时间
iv.startAnimation(aa);
然后这只一个画面变换完成后需要做的事情(监听器):
aa.setAnimationListener(new AnimationListener()){
public void onAnimationEnd(Animation arg0){
…………}
}
7.获得手机屏幕大小:
DisplayMetrics dm=new DisplayMetrics();
Screenwidth=dm.widthpixels;
Screenheight=dm.heightpixels-80;
8.有些时候在应用图片资源时,需要把图片处理成数据流,可以:
Resource resource=getBaseContext().getResource();
Img=resource.openResource(R.id…..);这样就可以了。
9.手机背景图片:(WallPaper类)
得到手机背景图片:getWallPaper();
设置手机图片:thisAcitvity.setWallPaper();
10.BaseAdaspter:
BaseAdapter是一个内容适配器,可以把一个列表的内容按顺序方在里面。例如:
Spinner spinner=new Spinner();
String[]hobby={“篮球”,”足球”,”羽毛球”,”乒乓球”};
drawable[]={R.id….,R.id…,R.id….R.id….};
BaseAdapter ba=new BaseAdapter(){
//这里省略一下需要重写的方法,
Public View getView(int arg0,View arg1,ViewGroup arg2){
LinnerLayout ll=new LinnerLayout(thisActivity.this);
ll.setOritention(LinnerLayout.H….)
ImageView iv=new ImageView();
iv.setImagedrawable(hobby[arg0])
ll.add(iv);
//然后还可以再里面加上一些控件
}
}
//最后为spinner设置适配器
Spinner.setAdapter(ba);
这样就成功的利用了BaseAdapter了