From 7a86ea8e43db85c6a6ff9c81da6bb8d6cdde41f5 Mon Sep 17 00:00:00 2001 From: wangyupeng Date: Fri, 20 May 2016 20:09:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?commit=20displayUtils=E7=9A=84px=E8=BD=ACsp?= =?UTF-8?q?=EF=BC=8Csp=E8=BD=ACpx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stay4it/utilities/common/DisplayUtils.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/java/com/stay4it/utilities/common/DisplayUtils.java b/app/src/main/java/com/stay4it/utilities/common/DisplayUtils.java index c1431a5..5edee9f 100644 --- a/app/src/main/java/com/stay4it/utilities/common/DisplayUtils.java +++ b/app/src/main/java/com/stay4it/utilities/common/DisplayUtils.java @@ -22,4 +22,20 @@ public static int dip2px(Context context, float dipValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dipValue * scale + 0.5f); } + + /** + * 将px值转换为sp值,保证文字大小不变 + */ + public static int px2sp(Context context, float pxValue) { + final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; + return (int) (pxValue / fontScale + 0.5f); + } + + /** + * 将sp值转换为px值,保证文字大小不变 + */ + public static int sp2px(Context context, float spValue) { + final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; + return (int) (spValue * fontScale + 0.5f); + } } From 05ab5026e3843859fa1e459b44822132ccdd9721 Mon Sep 17 00:00:00 2001 From: wangyupeng Date: Tue, 24 May 2016 10:37:07 +0800 Subject: [PATCH 2/3] add Gson&JsonUtils&Test --- app/src/main/java/com/stay4it/sample/gsonTest/Person.java | 7 +++++++ app/src/main/java/com/stay4it/sample/gsonTest/Test.java | 7 +++++++ .../main/java/com/stay4it/utilities/common/BeanUtil.java | 7 +++++++ .../main/java/com/stay4it/utilities/io/FastJsonUtil.java | 7 +++++++ app/src/main/java/com/stay4it/utilities/io/GsonUtils.java | 7 +++++++ 5 files changed, 35 insertions(+) create mode 100644 app/src/main/java/com/stay4it/sample/gsonTest/Person.java create mode 100644 app/src/main/java/com/stay4it/sample/gsonTest/Test.java create mode 100644 app/src/main/java/com/stay4it/utilities/common/BeanUtil.java create mode 100644 app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java create mode 100644 app/src/main/java/com/stay4it/utilities/io/GsonUtils.java diff --git a/app/src/main/java/com/stay4it/sample/gsonTest/Person.java b/app/src/main/java/com/stay4it/sample/gsonTest/Person.java new file mode 100644 index 0000000..a81d11f --- /dev/null +++ b/app/src/main/java/com/stay4it/sample/gsonTest/Person.java @@ -0,0 +1,7 @@ +package com.stay4it.sample.gsonTest; + +/** + * Created by AndWang on 16/5/24. + */ +public class Person { +} diff --git a/app/src/main/java/com/stay4it/sample/gsonTest/Test.java b/app/src/main/java/com/stay4it/sample/gsonTest/Test.java new file mode 100644 index 0000000..08e65b1 --- /dev/null +++ b/app/src/main/java/com/stay4it/sample/gsonTest/Test.java @@ -0,0 +1,7 @@ +package com.stay4it.sample.gsonTest; + +/** + * Created by AndWang on 16/5/24. + */ +public class Test { +} diff --git a/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java b/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java new file mode 100644 index 0000000..4d02d57 --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java @@ -0,0 +1,7 @@ +package com.stay4it.utilities.common; + +/** + * Created by AndWang on 16/5/22. + */ +public class BeanUtil { +} diff --git a/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java b/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java new file mode 100644 index 0000000..df14892 --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java @@ -0,0 +1,7 @@ +package com.stay4it.utilities.io; + +/** + * Created by AndWang on 16/5/22. + */ +public class FastJsonUtil { +} diff --git a/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java b/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java new file mode 100644 index 0000000..acbd22e --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java @@ -0,0 +1,7 @@ +package com.stay4it.utilities.io; + +/** + * Created by AndWang on 16/5/20. + */ +public class GsonUtils { +} From 1d69594595058d9d063457f0b255104b801e0a2c Mon Sep 17 00:00:00 2001 From: wangyupeng Date: Tue, 24 May 2016 10:50:45 +0800 Subject: [PATCH 3/3] commit Gson&FastJsonUtils&Test --- app/build.gradle | 4 +- .../com/stay4it/sample/gsonTest/Person.java | 30 +++++ .../com/stay4it/sample/gsonTest/Test.java | 46 ++++++++ .../stay4it/utilities/common/BeanUtil.java | 48 ++++++++ .../stay4it/utilities/io/FastJsonUtil.java | 110 ++++++++++++++++++ .../com/stay4it/utilities/io/GsonUtils.java | 108 +++++++++++++++++ 6 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/stay4it/sample/gsonTest/Person.java create mode 100644 app/src/main/java/com/stay4it/sample/gsonTest/Test.java create mode 100644 app/src/main/java/com/stay4it/utilities/common/BeanUtil.java create mode 100644 app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java create mode 100644 app/src/main/java/com/stay4it/utilities/io/GsonUtils.java diff --git a/app/build.gradle b/app/build.gradle index ff1dc84..c468329 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,9 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.0.0-alpha2' + compile 'com.google.code.gson:gson:2.2.4' + compile 'com.alibaba:fastjson:1.2.12' } diff --git a/app/src/main/java/com/stay4it/sample/gsonTest/Person.java b/app/src/main/java/com/stay4it/sample/gsonTest/Person.java new file mode 100644 index 0000000..67a2e5f --- /dev/null +++ b/app/src/main/java/com/stay4it/sample/gsonTest/Person.java @@ -0,0 +1,30 @@ +package com.stay4it.sample.gsonTest; + +/** + * Created by AndWang on 16/5/24. + */ +public class Person { + private String firstName; + private String lastName; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + @Override + public String toString() { + return "Person [firstName=" + firstName + ", lastName=" + lastName + "]"; + } +} diff --git a/app/src/main/java/com/stay4it/sample/gsonTest/Test.java b/app/src/main/java/com/stay4it/sample/gsonTest/Test.java new file mode 100644 index 0000000..2fc2495 --- /dev/null +++ b/app/src/main/java/com/stay4it/sample/gsonTest/Test.java @@ -0,0 +1,46 @@ +package com.stay4it.sample.gsonTest; + +import com.google.gson.reflect.TypeToken; +import com.stay4it.utilities.io.GsonUtils; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by AndWang on 16/5/24. + */ +public class Test { + public static void main(String[] args) { + Person p = new Person(); + p.setFirstName("xxx"); + p.setLastName("yyy"); + + List pList = new ArrayList(); + pList.add(p); + + String jsonStr = GsonUtils.toJsonList(pList); + + System.out.println("Person List as Json Array = " + jsonStr); + + Type collectionType = new TypeToken>() { + }.getType(); + List personList = GsonUtils.fromJsonString(jsonStr, collectionType); + System.out.println("Person List from json String array = " + personList); + + String personJsonStr = GsonUtils.toJsonObj(p); + System.out.println("Json String from person = " + personJsonStr); + + Person p1 = GsonUtils.fromJsonString(personJsonStr, Person.class); + System.out.println("Person from json String = " + p1); + } + + /** + * 最后输出结果 + * Person List as Json Array = [{"firstName":"xxx","lastName":"yyy"}] + * Person List from json String array = [Person [firstName=xxx, lastName=yyy]] + * Json String from person = {"firstName":"xxx","lastName":"yyy"} + * Person from json String = Person [firstName=xxx, lastName=yyy] + * */ + +} diff --git a/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java b/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java new file mode 100644 index 0000000..dbdb459 --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/common/BeanUtil.java @@ -0,0 +1,48 @@ +package com.stay4it.utilities.common; + +/** + * @author peiyu + * 对象常用方法工具类的封装 + */ +public class BeanUtil { + /** + * 此类不需要实例化 + */ + private BeanUtil() { + } + + /** + * 判断对象是否为null + * + * @param object 需要判断的对象 + * @return 是否为null + */ + public static boolean isNull(Object object) { + return null == object; + } + + /** + * 判断对象是否不为null + * + * @param object 需要判断的对象 + * @return 是否不为null + */ + public static boolean nonNull(Object object) { + return null != object; + } + + /** + * 判断对象是否为空,如果为空,直接抛出异常 + * + * @param object 需要检查的对象 + * @param errorMessage 异常信息 + * @return 非空的对象 + */ + public static Object requireNonNull(Object object, String errorMessage) { + if (null == object) { + throw new NullPointerException(errorMessage); + } + return object; + } + +} diff --git a/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java b/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java new file mode 100644 index 0000000..e2e7012 --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/io/FastJsonUtil.java @@ -0,0 +1,110 @@ +package com.stay4it.utilities.io; + +import android.text.TextUtils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.stay4it.utilities.common.BeanUtil; + +import java.util.Map; + +/** + * @author peiyu. + * 基于fastjson封装解析json + */ +public class FastJsonUtil { + /** + * 默认json格式化方式 + */ + public static final SerializerFeature[] DEFAULT_FORMAT = {SerializerFeature.WriteDateUseDateFormat, SerializerFeature.WriteEnumUsingToString, + SerializerFeature.WriteNonStringKeyAsString, SerializerFeature.QuoteFieldNames, SerializerFeature.SkipTransientField, + SerializerFeature.SortField, SerializerFeature.PrettyFormat}; + + private FastJsonUtil() { + } + + /** + * 从json获取指定key的字符串 + * + * @param jsonString json字符串 + * @param key 字符串的key + * @return 指定key的值 + */ + public static Object getStringFromJSONObject(String jsonString, String key) { + BeanUtil.requireNonNull(jsonString, "json is null"); + return JSON.parseObject(jsonString).getString(key); + } + + /** + * 将字符串转换成JSON字符串 + * + * @param jsonString json字符串 + * @return 转换成的json对象 + */ + public static JSONObject getJSONFromString(String jsonString) { + if (TextUtils.isEmpty(jsonString)) { + return new JSONObject(); + } + return JSON.parseObject(jsonString); + } + + /** + * 将json字符串,转换成指定java bean + * + * @param jsonString json串对象 + * @param cls 指定的bean + * @param 任意bean的类型 + * @return 转换后的java bean对象 + */ + + public static T toBean(String jsonString, Class cls) { + BeanUtil.requireNonNull(jsonString, "jsonString is null"); + JSONObject jo = JSON.parseObject(jsonString); + jo.put(JSON.DEFAULT_TYPE_KEY, cls.getName()); + return JSON.parseObject(jo.toJSONString(), cls); + } + + /** + * @param obj 需要转换的java bean + * @param 入参对象类型泛型 + * @return 对应的json字符串 + */ + public static String toJson(T obj) { + BeanUtil.requireNonNull(obj, "obj is null"); + return JSON.toJSONString(obj, DEFAULT_FORMAT); + } + + /** + * 通过Map生成一个json字符串 + * + * @param map 需要转换的map + * @return json串 + */ + public static String toJson(Map map) { + BeanUtil.requireNonNull(map, "map is null"); + return JSON.toJSONString(map, DEFAULT_FORMAT); + } + + /** + * 美化传入的json,使得该json字符串容易查看 + * + * @param jsonString 需要处理的json串 + * @return 美化后的json串 + */ + public static String prettyFormatJson(String jsonString) { + BeanUtil.requireNonNull(jsonString, "jsonString is null"); + return JSON.toJSONString(getJSONFromString(jsonString), true); + } + + /** + * 将传入的json字符串转换成Map + * + * @param jsonString 需要处理的json串 + * @return 对应的map + */ + public static Map toMap(String jsonString) { + BeanUtil.requireNonNull(jsonString, "jsonString is null"); + return getJSONFromString(jsonString); + } +} diff --git a/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java b/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java new file mode 100644 index 0000000..e2c68bd --- /dev/null +++ b/app/src/main/java/com/stay4it/utilities/io/GsonUtils.java @@ -0,0 +1,108 @@ +package com.stay4it.utilities.io; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonSyntaxException; + +import java.lang.reflect.Type; +import java.util.List; + +/** + * GsonUtils. + * + * @author simon + * @version 1.0.0 + * @since 2015-12-10 + */ +public class GsonUtils { + + private static Gson sGson = new GsonBuilder().create(); + + /** + * get Gson. + * + * @return Gson. + */ + public static Gson getGson() { + return sGson; + } + + /** + * new Gson. + * + * @return Gson. + */ + public static Gson newGson() { + return new GsonBuilder().create(); + } + + /** + * convert json String to Object. + * + * @param jsonString json string + * @param clazz Object class + * @param Object Class Type + * @return Object + */ + public static T fromJsonString(String jsonString, Class clazz) { + try { + return sGson.fromJson(jsonString, clazz); + } catch (Throwable var3) { + var3.printStackTrace(); + return null; + } + } + + /** + * convert json string to the Object of the specified Type. + * + * @param json json string + * @param typeOfT Type + * @param Type + * @return Object of T + */ + public static T fromJsonString(String json, Type typeOfT) { + try { + return sGson.fromJson(json, typeOfT); + } catch (JsonSyntaxException var3) { + var3.printStackTrace(); + return null; + } + } + + /** + * vonvert Object to json string. + * + * @param object Object + * @return json string. + */ + public static String toJsonString(Object object) { + try { + return sGson.toJson(object); + } catch (Throwable var2) { + var2.printStackTrace(); + return ""; + } + } + + /** + * Converts a collection of objects using Google's Gson Package + * + * @param objCol + * @return a json string array + */ + public static String toJsonList(List objCol) { + return sGson.toJson(objCol); + } + + /** + * To Json Converter using Goolge's Gson Package
+ * this method converts a simple object to a json string
+ * + * @param obj + * @return a json string + */ + public static String toJsonObj(T obj) { + return sGson.toJson(obj); + } +}