Android 特殊用法--来自中国移动开发社区
1.让一个图片透明:
复制到剪贴板??Java代码- Bitmap?buffer?=?Bitmap.createBitmap(width,?height,?Bitmap.Config.ARGB_4444);buffer.eraseColor(Color.TRANSPARENT);???
2.直接发送邮件:
复制到剪贴板??Java代码- Intent?intent?=?new?Intent(Intent.ACTION_SENDTO,??Uri?.fromParts("mailto",?"test@test.com",?null));? ?? intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);? ??
- context.startActivity(intent);???
3.程序控制屏幕变亮:
复制到剪贴板??Java代码- WindowManager.LayoutParams?lp?=?getWindow().getAttributes();? ?? lp.screenBrightness?=?100?/?100.0f;? ??
- getWindow().setAttributes(lp);??
4.过滤特定文本
复制到剪贴板??Java代码- Filter?filter?=?myAdapter.getFilter();? ?? filter.filter(mySearchText);???
5.scrollView scroll停止事件
复制到剪贴板??Java代码- setOnScrollListener(new?OnScrollListener(){???? ?? public?void?onScroll(AbsListView?view,?int?firstVisibleItem,?int?visibleItemCount,?int?totalItemCount)?{?????? ??
- //?TODO?Auto-generated?method?stub????}???? ?? public?void?onScrollStateChanged(AbsListView?view,?int?scrollState)?{?????? ??
- //?TODO?Auto-generated?method?stub?????? ?? if(scrollState?==?0)?Log.i("a",?"scrolling?stopped...");????}??});}???
6. 对于特定的程序 发起一个关联供打开
复制到剪贴板??C/C++代码- Bitmap?bmp?=?getImageBitmap(jpg);? ?? String?path?=?getFilesDir().getAbsolutePath()?+?"/test.png";? ??
- File?file?=?new?File(path);? ?? FileOutputStream?fos?=?new?FileOutputStream(file);? ??
- bmp.compress(?CompressFormat.PNG,?100,?fos?);? ?? ??fos.close();? ??
- ?? ?? ???Intent?intent?=?new?Intent();? ??
- ???intent.setAction(android?.content.Intent.ACTION_VIEW);? ?? ???intent.setDataAndType(Uri?.fromFile(new?File(path)),?"image/png");? ??
- ???startActivity(intent);? ?? 对于图片上边的不适用索引格式会出错。? ??
- Intent?intent?=?new?Intent();?? ?? intent.setAction(android?.content.Intent.ACTION_VIEW);?? ??
- File?file?=?new?File("/sdcard/test.mp4");?? ?? intent.setDataAndType(Uri?.fromFile(file),?"video/*");?? ??
- startActivity(intent);? ?? ??
- Intent?intent?=?new?Intent();?? ?? intent.setAction(android?.content.Intent.ACTION_VIEW);?? ??
- File?file?=?new?File("/sdcard/test.mp3");?? ?? intent.setDataAndType(Uri?.fromFile(file),?"audio/*");?? ??
- startActivity(intent);???
7.设置文本外观
复制到剪贴板??Java代码- setTextAppearance(context,?android?.R.style.TextAppearance_Medium);? ?? android?:textAppearance="?android?:attr/textAppearanceMedium"??
8.设置单独的发起模式:
复制到剪贴板??Java代码- <activity???????? ?? ??android?:name=".ArtistActivity"???????? ??
- ??android?:label="Artist"???????? ?? ??android?:launchMode="singleTop">???? ??
- ??</activity>? ?? ??
- Intent?i?=?new?Intent();???????? ?? ???i.putExtra(EXTRA_KEY_ARTIST,?id);??????? ??
- ????i.setClass(this,?ArtistActivity.class);???????? ?? ????i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);??????? ??
- ?????startActivity(i);???
9.创建一个圆角图片
这个的主要原理其实就是利用遮罩,先创建一个圆角方框 然后将图片放在下面:
- Bitmap?myCoolBitmap?=?...?;? ????????int?w?=?myCoolBitmap.getWidth(),?h?=?myCoolBitmap.getHeight();? ??
- ??????Bitmap?rounder?=?Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);? ????????Canvas?canvas?=?new?Canvas(rounder);???? ??
- ??????Paint?xferPaint?=?new?Paint(Paint.ANTI_ALIAS_FLAG);? ????????xferPaint.setColor(Color.RED);? ??
- ??????canvas.drawRoundRect(new?RectF(0,0,w,h),?20.0f,?20.0f,?xferPaint);????? ????????xferPaint.setXfermode(new?PorterDuffXfermode(PorterDuff.Mode.DST_IN));???
- //然后呢实现? ??canvas.drawBitmap(myCoolBitmap,?0,0,?null);? ??
- canvas.drawBitmap(rounder,?0,?0,?xferPaint);? ??
10.在notification 上的icon上加上数字 给人提示有多少个未读
复制到剪贴板??Java代码- Notification?notification?=?new?Notification?(icon,?tickerText,?when);? ??notification?.number?=?4;???
11背景渐变:
首先建立文件drawable/shape.xml
- <?xml?version="1.0"?encoding="utf-8"?>? ??<shape?xmlns:android?="http://schemas.android?.com/apk/res/android?"?android?:shape="rectangle">? ??
- ????<gradient?android?:startColor="#FFFFFFFF"?android?:endColor="#FFFF0000"? ??????????????android?:angle="270"/>? ??
- </shape>? ??
在该文件中设置渐变的开始颜色(startColor)、结束颜色(endColor)和角度(angle)
接着创建一个主题values/style.xml
- <?xml?version="1.0"?encoding="utf-8"?>? ??<resources>? ??
- <style?name="NewTheme"?parent="android?:Theme">? ??<item?name="android?:background">@drawable/shape</item>? ??
- </style>? ??</resources>???
然后在AndroidManifest.xml文件中的application或activity中引入该主题,如:
复制到剪贴板??Java代码- <activity?android?:name=".ShapeDemo"?android?:theme="@style/NewTheme">? ??
该方法同样适用于控件? http://17f8.cn/trackback.php?tbID=259&extra=9d45e9
12. 储存数据 当你在一个实例中保存静态数据,此示例关闭后 下一个实例想引用 静态数据就会为null,这里呢必须重写applition
- public?class?MyApplication?extends?Application{???? ?????private?String?thing?=?null;???? ??
- ???public?String?getThing(){???????? ???????return?thing;???? ??
- ?????}???? ???????public?void?setThing(?String?thing?){??????? ??
- ??????this.thing?=?thing;????}? ????????}? ??
- ??????public?class?MyActivity?extends?Activity?{???? ????????private?MyApplication?app;???? ??
- ??????public?void?onCreate(Bundle?savedInstanceState)?{???????? ????????super.onCreate(savedInstanceState);???????? ??
- ??????app?=?((MyApplication)getApplication());???????? ????????String?thing?=?app.getThing();???? ??
- ??????}? ????????}??