android上的实用代码片段

来源:互联网 发布:linux 改时间 编辑:程序博客网 时间:2024/06/07 12:28

1、动态获取资源id

int getIdentifier(String name, String defType, String defPackage) 获得资源id

正常情况下,我们可以通过R类获取资源id,但有时候我们需要在代码中根据业务逻辑动态获取资源id,比如layou、drawable、string等,就可以使用Resource类中的

比如下面是代码中获取layout资源id

for(int i=0;i<5;i++){int resID = getActivity().getResources().getIdentifier("view" + i, "layout", getActivity().getPackageName());View rootView = inflater.inflate(resID, container, false);}

2、TypedArray

public float getFraction(@StyleableRes int index, int base, int pbase, float defValue)   获取type="fraction"单位的值
base和pbase表示倍数,比如使用%p则会使用pbase,否则使用base。
在xml中定义两个fraction类型的参数
<item name="fraction" type="fraction">5%</item>
<item name="parent_fraction" type="fraction">2%p</item>
获取的结果为:
// 0.05f
getResources().getFraction(R.fraction.fraction, 1, 1);
// 0.02f
getResources().getFraction(R.fraction.parent_fraction, 1, 1);
// 0.10f
getResources().getFraction(R.fraction.fraction, 2, 1);
// 0.10f
getResources().getFraction(R.fraction.fraction, 2, 2);
// 0.04f
getResources().getFraction(R.fraction.parent_fraction, 1, 2);
// 0.04f
getResources().getFraction(R.fraction.parent_fraction, 2, 2); 

3、TypedValue

public static float applyDimension(int unit, float value,                                       DisplayMetrics metrics)    {        switch (unit) {        case COMPLEX_UNIT_PX: //px单位            return value;        case COMPLEX_UNIT_DIP: //dip单位            return value * metrics.density;        case COMPLEX_UNIT_SP:  //sp单位            return value * metrics.scaledDensity;        case COMPLEX_UNIT_PT:            return value * metrics.xdpi * (1.0f/72);        case COMPLEX_UNIT_IN:            return value * metrics.xdpi;        case COMPLEX_UNIT_MM:            return value * metrics.xdpi * (1.0f/25.4f);        }        return 0;    }
比如获取dp尺寸
public static int dip2px(Context context, float dip) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip,context.getResources().getDisplayMetrics());}//dip2px(10) 10dp对应的px

3、加载SD卡中的html

文件路径以"file:///mnt/sdcard/" 开头,比如加载SD卡中www目录下的index.html

String baseDir="file:///mnt/sdcard/";String url=baseDir+"www/index.html";webView.loadUrl(url);


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两岁了头发稀少怎么办 孩子抵抗力差爱生病怎么办 三岁宝宝总生病怎么办 冬天穿伴娘服冷怎么办 白衬衣粘了黑毛怎么办 黄衣服钻进黑毛怎么办 单位没给上社保怎么办 轮毂中心孔大了怎么办 钻戒大了怎么办小窍门 shift加f4没反应怎么办 多洗联系不上怎么办 弹力靴筒往下掉怎么办 子宫内膜厚月经停不了怎么办 雪纺衣服有静电怎么办 阿胶糕熬的稀了怎么办 感冒吃了阿胶糕怎么办 身上起湿疹很痒怎么办 身上起小疹子痒怎么办 吊带裙带子断了怎么办 裙子洗完缩水了怎么办 衬衫洗后缩水了怎么办 羊毛被洗缩水了怎么办 蕾丝洗后缩水了怎么办 天丝针织衫缩水怎么办? 氨纶面料起球怎么办? 新买的衬衫很硬怎么办 孕晚期睡不好觉怎么办 全棉衣服缩水了怎么办 棉麻的衣服起球怎么办 布艺沙发起球怎么办 加绒的衣服掉毛怎么办 新裤子有刺鼻味怎么办 新买鞋子味道大怎么办 天窗下水管堵了怎么办 雪纺衬衫染色了怎么办 雪纺衣服染色了怎么办 漂白后衣服变黄怎么办 用84泡衣服变红怎么办 84腐蚀过的衣服怎么办 紫檀手链泡水了怎么办 链条包链条太短怎么办