六11、Android建立桌面快捷方式:php
http://www.cnblogs.com/-OYK/archive/2011/05/31/2064797.html
html
http://www.apkbus.com/android-17389-1-1.html
java
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-8836-1.html
android
六12、android畫圖去鋸齒效果json
paint.setAntiAlias(true);
canvas
畫圖片的時候,前面設置沒有用數組
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
app
六十3、獲取sd卡里文件信息ide
六十4、Android標題欄顯示progressBar佈局
六十6、Android設置圖片圓角
六十7、把圖片轉換成圓形
六十8、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 = "<font color=\"#ffff00\">若是有一天,</font><br>";
StringtextStr2 = "<font color=\"#00ff00\">我厭倦了這裏,</font><br>";
StringtextStr3 = "<font color=\"#ff00ff\">我會乘着夢,</font><br>";
StringtextStr4 = "<font color=\"#00ffff\">飛向那個屬於本身的<br>世界……</font><br>";
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 = "<img src=\""+R.drawable.sidai+"\"/>";
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資源。
七10、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<String, Object>) 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<Object> c)
- {
- final Object[] arrObj = c.toArray();
- return toJson(arrObj);
- }
- /**
- * 將 Map<String, Object> 編碼爲 JSON 格式
- *
- * @param map
- * @return
- */
- static String map2Json(final Map<String, Object> map)
- {
- if (map.isEmpty())
- {
- return "{}";
- }
- final StringBuilder sb = new StringBuilder(map.size() << 4); //4次方
- sb.append('{');
- final Set<String> keys = map.keySet();
- for (final String key : keys)
- {
- final Object value = map.get(key);
- sb.append('\"');
- sb.append(key); //不能包含特殊字符
- sb.append('\"');
- sb.append(':');
- sb.append(toJson(value)); //循環引用的對象會引起無限遞歸
- sb.append(',');
- }
- // 將最後的 ',' 變爲 '}':
- sb.setCharAt(sb.length() - 1, '}');
- return sb.toString();
- }
- /**
- * 將數組編碼爲 JSON 格式
- *
- * @param array
- * 數組
- * @return JSON 格式
- */
- static String array2Json(final Object[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4); //4次方
- sb.append('[');
- for (final Object o : array)
- {
- sb.append(toJson(o));
- sb.append(',');
- }
- // 將最後添加的 ',' 變爲 ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String intArray2Json(final int[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final int o : array)
- {
- sb.append(Integer.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String longArray2Json(final long[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final long o : array)
- {
- sb.append(Long.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String booleanArray2Json(final boolean[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final boolean o : array)
- {
- sb.append(Boolean.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String floatArray2Json(final float[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final float o : array)
- {
- sb.append(Float.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String doubleArray2Json(final double[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final double o : array)
- {
- sb.append(Double.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String shortArray2Json(final short[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final short o : array)
- {
- sb.append(Short.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- static String byteArray2Json(final byte[] array)
- {
- if (array.length == 0)
- {
- return "[]";
- }
- final StringBuilder sb = new StringBuilder(array.length << 4);
- sb.append('[');
- for (final byte o : array)
- {
- sb.append(Byte.toString(o));
- sb.append(',');
- }
- // set last ',' to ']':
- sb.setCharAt(sb.length() - 1, ']');
- return sb.toString();
- }
- public static String object2Json(final Object bean)
- {
- //數據檢查
- if (bean == null)
- {
- return "{}";
- }
- final Method[] methods = bean.getClass().getMethods(); //方法數組
- final StringBuilder sb = new StringBuilder(methods.length << 4); //4次方
- sb.append('{');
- for (final Method method : methods)
- {
- try
- {
- final String name = method.getName();
- String key = "";
- if (name.startsWith("get"))
- {
- key = name.substring(3);
- //防死循環
- final String[] arrs =
- { "Class" };
- boolean bl = false;
- for (final String s : arrs)
- {
- if (s.equals(key))
- {
- bl = true;
- continue;
- }
- }
- if (bl)
- {
- continue; //防死循環
- }
- }
- else if (name.startsWith("is"))
- {
- key = name.substring(2);
- }
- if (key.length() > 0 && Character.isUpperCase(key.charAt(0)) && method.getParameterTypes().length == 0)
- {
- if (key.length() == 1)
- {
- key = key.toLowerCase();
- }
- else if (!Character.isUpperCase(key.charAt(1)))
- {
- key = key.substring(0, 1).toLowerCase() + key.substring(1);
- }
- final Object elementObj = method.invoke(bean);
- //System.out.println("###" + key + ":" + elementObj.toString());
- sb.append('\"');
- sb.append(key); //不能包含特殊字符
- sb.append('\"');
- sb.append(':');
- sb.append(toJson(elementObj)); //循環引用的對象會引起無限遞歸
- sb.append(',');
- }
- }
- catch (final Exception e)
- {
- //e.getMessage();
- throw new RuntimeException("在將bean封裝成JSON格式時異常:" + e.getMessage(), e);
- }
- }
- if (sb.length() == 1)
- {
- return bean.toString();
- }
- else
- {
- sb.setCharAt(sb.length() - 1, '}');
- return sb.toString();}
- }
- private JsonUtil(){
- }
- }