(); //如果当前File是文件夹,使用folder图标;否则使用file图标 if (files[i].isDirectory()){ listItem.put("icon", R.drawable.folder); }else{ listItem.put("icon", R.drawable.file); } listItem.put("fileName", files[i].getName()); //添加List项 listItems.add(listItem); } // 创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.line, new String[] { "icon", "fileName" }, new int[] { R.id.icon, R.id.file_name }); // 为ListView设置Adapter listView.setAdapter(simpleAdapter); try{ textView.setText("当前路径为:" + currentParent.getCanonicalPath()); }catch (IOException e){ e.printStackTrace(); } } }
六十四、Android标题栏显示progressBar
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//先给Activity注册界面进度条功能 setContentView(R.layout.main); setProgressBarIndeterminateVisibility(true);//在需要显示进度条的时候调用这个方法 setProgressBarIndeterminateVisibility(false);//在不需要显示进度条的时候调用这个方法 }
六十五、单击EditText全选内容
percent.setOnTouchListener(this); @Override public boolean onTouch(View v, MotionEvent event) { if(v.getId()==R.id.seekPercent) { percent.selectAll(); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(v, 0); return true; } return false; }
六十六、Android设置图片圆角
/** * 将图片设置为圆角 */ public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = pixels; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }
六十七、把图片转换成圆形
bitmap = ((BitmapDrawable)imageView1.getDrawable()).getBitmap(); bitmap = getRoundedCornerBitmap(bitmap); imageView1.setImageBitmap(bitmap); public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = bitmap.getWidth() / 2; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }
六十八、TextView高级应用
1.自定义字体
可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的 Typeface又使用TTF字体文件来设置字体
所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。第二步,程序中调用:
TextViewtv = (TextView)findViewById(R.id.textView);
AssetManagermgr=getAssets();//得到AssetManager
Typefacetf=Typeface.createFromAsset(mgr, "fonts/mini.TTF");//根据路径得到Typeface
tv.setTypeface(tf);//设置字体
效果如下图所示:
2.显示多种颜色的字
Android支持html格式的字符串,通过调用Html.fromHtml(str)方法可以转换html格式的字符串str。
示例如下:
StringtextStr1 = "如果有一天,
";
StringtextStr2 = "我厌倦了这里,
";
StringtextStr3 = "我会乘着梦,
";
StringtextStr4 = "飞向那个属于自己的
世界……
";
tv.setText(Html.fromHtml(textStr1+textStr2+textStr3+textStr4));
运行后效果如下:
3.字体加粗
在xml布局文件中使用android:textStyle=”bold”可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。示例代码如下:
tv.getPaint().setFakeBoldText(true);
效果如下:
4.添加阴影
在xml布局文件中使用一系列android:shadowXXX属性可添加设置阴影。具体为:shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。
示例代码:
android:shadowColor="#ffffff"
android:shadowDx="15.0"
android:shadowDy="5.0"
android:shadowRadius="2.5"
显示效果如下:
5.插入图片
插入图片有两种方法,第一种方法就是用上面说的html格式的字符串,不过转换稍微有些麻烦。需要用到ImageGetter类来对图片的src属性进行转换。示例代码如下:
StringimgStr = "";
Html.ImageGetterimageGetter = new Html.ImageGetter() {
public Drawable getDrawable(Stringarg0) {
// TODO Auto-generated methodstub
int id =Integer.parseInt(arg0);
Drawable draw =getResources().getDrawable(id);
draw.setBounds(10, 10, 228,300);
return draw;
}
};
tv.append(Html.fromHtml(imgStr,imageGetter,null));
第二种方法是使用xml布局文件中一系列android:drawableXXX属性来实现插入图片。具体为:drawableBottom是在文本框内文本的底端绘制指定图像;drawableLeft是在文本框内文本的左边绘制指定图像;drawableRight是在文本框内文本的右边绘制指定图像;drawableTop是在文本框内文本的顶端绘制指定图像;drawablePadding设置文本框内文本与图像之间的间距。示例代码:
android:drawableBottom=”@drawable/sidai”
插入图片后的显示效果如下:
六十九、资源plurals表示数量的各种方式,比如:一个教室有多少学生。考虑下面的例子:
there is 1 student;
there are 2 students;
there are 50 students;
显然对于2,50句子格式是一样的,对于1不同,Android支持将这种变体表示为plurals资源。
[html] view plain copy - <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <stringname="hello">HelloWorld,Resource_Plurals!string>
- <stringname="app_name">Resource_Pluralsstring>
- <pluralsname="student">
- <itemquantity="one">Thereis1studentitem>
- <itemquantity="other">Thereare%dstudentsitem>
- plurals>
- resources>
在Java代码中获取定义的plurals资源
[java] view plain copy - publicclassResource_PluralsextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Resourcesr=getResources();
- Strings1=r.getQuantityString(R.plurals.student,1,1);
- Log.i("plurals",s1);
- Strings2=r.getQuantityString(R.plurals.student,2,2);
- Log.i("plurals",s2);
- Strings3=r.getQuantityString(R.plurals.student,50,50);
- Log.i("plurals",s3);
- }
- }
七十、Android 自定义json解析类
import java.lang.reflect.Method;import java.util.Collection;import java.util.Map;import java.util.Set;public final class JsonUtil{/*** 把对象封装为JSON格式** @param o* 对象* @return JSON格式*/@SuppressWarnings("unchecked")public static String toJson(final Object o){if (o == null){return "null";}if (o instanceof String) //String{return string2Json((String) o);}if (o instanceof Boolean) //Boolean{return boolean2Json((Boolean) o);}if (o instanceof Number) //Number{return number2Json((Number) o);}if (o instanceof Map) //Map{return map2Json((Map) o);}if (o instanceof Collection) //List Set{return collection2Json((Collection) o);}if (o instanceof Object[]) //对象数组{return array2Json((Object[]) o);}if (o instanceof int[])//基本类型数组{return intArray2Json((int[]) o);}if (o instanceof boolean[])//基本类型数组{return booleanArray2Json((boolean[]) o);}if (o instanceof long[])//基本类型数组{return longArray2Json((long[]) o);}if (o instanceof float[])//基本类型数组{return floatArray2Json((float[]) o);}if (o instanceof double[])//基本类型数组{return doubleArray2Json((double[]) o);}if (o instanceof short[])//基本类型数组{return shortArray2Json((short[]) o);}if (o instanceof byte[])//基本类型数组{return byteArray2Json((byte[]) o);}if (o instanceof Object) //保底收尾对象{return object2Json(o);}throw new RuntimeException("不支持的类型: " + o.getClass().getName());}/*** 将 String 对象编码为 JSON格式,只需处理好特殊字符** @param s* String 对象* @return JSON格式*/static String string2Json(final String s){final StringBuilder sb = new StringBuilder(s.length() + 20);sb.append('\"');for (int i = 0; i < s.length(); i++){final char c = s.charAt(i);switch (c){case '\"':sb.append("\\\"");break;case '\\':sb.append("\\\\");break;case '/':sb.append("\\/");break;case '\b':sb.append("\\b");break;case '\f':sb.append("\\f");break;case '\n':sb.append("\\n");break;case '\r':sb.append("\\r");break;case '\t':sb.append("\\t");break;default:sb.append(c);}}sb.append('\"');return sb.toString();}/*** 将 Number 表示为 JSON格式** @param number* Number* @return JSON格式*/static String number2Json(final Number number){return number.toString();}/*** 将 Boolean 表示为 JSON格式** @param bool* Boolean* @return JSON格式*/static String boolean2Json(final Boolean bool){return bool.toString();}/*** 将 Collection 编码为 JSON 格式 (List,Set)** @param c* @return*/static String collection2Json(final Collection
- Android有用代码片段(四)
- Android(安卓)APK反编译详解(附图)
- Android连载之:第二章第三节:利用其他的开发环境和工具开发Android
- [置顶] Android(安卓)Makefile分析
- Android学习路线_入门篇(一)编写简单的APP
- Android系统移植与调试之------->Android(安卓)Make分析
- android Setting中隐藏项
- Android(安卓)Makefile分析
- Android(安卓)NDK环境配置与开发
随机推荐
-
Android(安卓)Push Notification实现信息
-
Android 4.1.1源码编译
-
android的sqlite主键设置方法。
-
Android(安卓)局部刷新
-
Android网络请求的几种方式(HttpUrlConnec
-
Android 下拉刷新
-
Android调用系统照相机
-
Endless Scrolling ListView in Android
-
修改android屏幕DPI
-
Android 获取路径