小技巧
在TextView上显示网址:增加属性android:autoLink=”all”
?
代码中更改TextView背景色:
Resources resources = getBaseContext().getResources();
Drawable hippoDrawable = resources.getDrawable(R.drwaable.white);
TextView tv = (TextView) findViewByID(R.id.text);
Tv.setBackground(hippoDrawable);
?
获取手机屏幕大小:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
//将高宽放入dm中
dm.widthPixels? dm.heightPixels
?
可以指定样式,在组件中通过[email protected]/stylename”引用,样式放于res/values/style.xml中,格式:
<style name=””>
?? <item name=”key”>value</item>
</style>
引申一步:变化主题也可以通过此种方式实现。将style写在文件中,调用setThem(R.style.name)即可生成。除了setThem外,还可以在AndroidManifext.xml文件中的activity中设置android:theme=””设置。
?
?
手机页面转换可以通过setContentView实现。如点击页面1按钮跳到页面2,则设置页面1按钮的点击事件时,通过setContentView引入页面2.
使用setContentView置换页面的优点是:所有程序中的变量皆存在相同的状态,无论是类变量、类函数,都在一个Activity中直接取得,并没有参数传递。
?
两个Activity之间的跳转通过Intent实现。如A向B跳转,则需要将A注册在Androidmanifest.xml中:
<activity android:name=”A” android:[email protected]/app_name”>
? <intent-filter>
??? <action android:name=”android.intent.action.MAIN”>
<category android:name=”android.intent.category.LAUNCHER”>
//标记启动时执行
</intent-filter>
</activity>
如果切换Activity时,执行A.finish(),则结束A;从B不能返回A。
?
不同Intent通过Bundle传递参数,放入Intent.putExtras(bundle)。
其他Intent通过this.getIntent.getExtras()得到Bundle。
若要从Activity B返回数据到前一个Activity A,则需A调用startActivityForResult(intent,0),0是B返回数据的依据,并重写onActivityResult()令A收到result后执行操作。这里会有result_code作为2边数据标记,B需要this.setResult(RESULT_OK,intent);A需要case 到RESULT_OK。
?
改变TextView的文本颜色setTextColor,文本大小setTextSize()、文本字体setTypeface(Typeface.createFromAsset(getAssets(),”fonts/字体.ttf”));在assets文件夹建立fonts文件夹,存放各种字体文件。
?
拖动照片特效:Gallery
?
全屏幕以按钮重写很简单:即在代码中写一个按钮,添加到senContentView中,再添加点击事件即可。
?
Res/values/strings.xml中添加数组方法:
<array name=””>
? <item></item>
</array>
?
具有选择功能的对话框可以用AlertDialog嵌套DialogInterface实现。
?
EditText属性android:hint=””设置输入框默认文字
?
显示输入的密码:EditText的setTransformationMethod()实现,正常显示样式获得:HideReturnsTransfromationMethod.getInstance(),隐藏输入字符:PasswordTransformationMethod.getInstance();
?
多语系支持:不同语系在res目录下建立不同后缀文件夹,如values/strings.xml表示中文,values-en/strings.xml表示英文。
还可以在程序中改变地区Local:
Resources res = getResources();
Configration conf = res.getConfiguration();
Conf.local = Local.JAPAN;
DisplayMetris dm = res.getDisplayMetris();
//保存语系更改
Res.updateConfiguration(conf, dm);
?
判断手机OS版本是否允许允许应用程序:
If(getApplicationInfo().targetSdkVersion() <= Build.VERSION_CODES>GINGERBREAD)
AndroidManifext.xml中表述了允许程序的最低版本:
<uses-sdk android:minSdkVersion=”10”></uses-sdk>
?
关闭程序进程:
Android.os.Process.killProcess(android.os.Process.myPid());
?
2个不同应用程序彼此调用:
Inent.setClassName(“app package name”,” app package对应的Activity”);
传入Bundle的key 由app package对外公开。
?
指定安装应用程序迁移到SD卡:
点击按钮后,onclick方法实现:
Intent I =new Intent(“android.intent.action.MANAGE_PACKAGE_STROAGE”);
并在AndroidManifest.xml中manifest标签下增加属性:
Android:installLocation=”prferExternal”
<uses-sdk android:minSdkVersion=”10” /> SDK2.2
?
手机状态Layout随手势物换迁移:ViewFipper左右滑动事件,实现onTouchEvent方法
?
EditText有一个键盘监听事件setOnKeyListener(new EditText.OnKeyListener(){})
?
Toast是一个简短的小信息,将要告诉用户的信息以一个浮动在最上层的View显示,显示Toast后,静待几秒会消失,常见的是音量大小的调整。通过Toast特性,可以在不影响用户通话或听音乐的情况下,显示给用户消息。对于程序员来说,还是Debug的工具。
Toast.makeText(当前类.this,”文本”,Toast.LENGTH_LONG)最后一个参数是时间长短。
也可以自定义ToasT对象:Toast toast = new Toast(this);
ImageVIew iv =new ImageView(this);
iv.setImageResource(R.drawable.XX);
toast.setView(iv);
toast.show();
?
按钮设置可否点击setEnable(true or false)