* context上下文对象
*/
public static void init(Context context) {
sDisplayMetrics = context.getResources().getDisplayMetrics();
sResources = context.getResources();
}
/**
* 获取屏幕高度 单位:像素
*
* @return 屏幕高度
*/
public static int getScreenHeight() {
return sDisplayMetrics.heightPixels;
}
/**
* 获取屏幕宽度 单位:像素
*
* @return 屏幕宽度
*/
public static float getDensity() {
return sDisplayMetrics.density;
}
/**
* dp 转 px
*
* @param dp
* dp值
* @return 转换后的像素值
*/
public static int dp2px(int dp) {
return (int) (dp * getDensity() + ROUND_CEIL);
}
/**
* 获取状态栏高度
*
* @return 状态栏高度
*/
public static int getStatusBarHeight() {
// 如果之前计算过,直接使用上次的计算结果
if (statusBarHeight == -1) {
final int defaultHeightInDp = 19;// statusBar默认19dp的高度
statusBarHeight = DisplayUtils.dp2px(defaultHeightInDp);
try {
Class<?> c = Class.forName("com.android.internal.R$dimen");
Object obj = c.newInstance();
Field field = c.getField("status_bar_height");
statusBarHeight = sResources.getDimensionPixelSize(Integer
.parseInt(field.get(obj).toString()));
} catch (Exception e) {
e.printStackTrace();
}
}
return statusBarHeight;
}
}
【搬砖去了,等会继续写… … 】好了,继续写… …
2、在继续往下写之前,我们得考虑如何设计表情按钮、表情按钮点击事件、表情面板之间的问题。我的做法是创建一个
ViewBinder内部类。(因为在逻辑上来说,这三个属于一体的)
ViewBinder的实现代码如下:
/**
* 用于控制点击某个按钮显示或者隐藏“表情面板”的绑定bean对象。<br/>
* 例如:我想点击“表情”按钮显示“表情面板”,我就可以这样做:<br/>