Ques1.如何实现屏幕自适应.
启动时获取设备的分辨率.
DisplayMetrics dm = getResources().getDisplayMetrics();
DeviceUtil.init(dm.widthPixels, dm.heightPixels, localVersion,false);
通过屏幕的宽度和高度来确定,横屏 || 竖屏。
if (screenWidth > screenHeight) {
readingScreenHeight = height - 100;
} else {
readingScreenHeight = height - 252;
}
Ques2.控制重新获取菜单的次数为10次? why?
private ProgressDialog dialog;
//判断网络是否连通
if (NetWorkUtils.isNetworkConnected(getApplicationContext())) {
MenuCenter.getInstance().checkMenu(handler);
if (dialog != null) {
dialog.show();
}
} else {
// 没有连接网络,
// TODO 给出相关错误提示,跳转到网络设置界面?
ToastUtils.toastShow(RegisterActivity.this, "暂时没有网络");
}
使用Pull解析器解析XML文件
1. Xml.newPullParser() 获得解析器
2 parser.setInput(in, "UTF-8") 设置输入流以及编码
3. parser.next() 获取下一个解析事件,得到一个事件代码
4. XmlPullParser中定义了常量来标识各种解析事件
START_DOCUMENT、END_DOCUMENT 、START_TAG 、END_TAG 、TEXT
// TODO 到期一个月前开始续费
protected void renewDevice() {
long day1 = RenewUtils.compareTime();
if (day1 <= 30) {
}
}
public class RenewUtils {
public static long compareTime() {
if (ConnecterInfo.getInstance().getSecurity() != null
&& ConnecterInfo.getInstance().getSecurity().getNextdate() != null) {
try {
SimpleDateFormat dfs = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
Date begin = new Date();
Date end = dfs.parse(ConnecterInfo.getInstance().getSecurity()
.getNextdate());
long between = (end.getTime() - begin.getTime()) / 1000;// 除以1000是为了转换成秒
long day1 = between / (24 * 3600);
return day1;
} catch (ParseException e) {
e.printStackTrace();
}
}
return 0;
}
public static String addTime(int year) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date end = dfs.parse(ConnecterInfo.getInstance().getSecurity()
.getNextdate());
Calendar c = Calendar.getInstance();
c.setTime(end);
c.add(c.YEAR, year);// 属性很多也有月等等,可以操作各种时间日期
Date temp_date = c.getTime();
return dfs.format(temp_date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
}
Ques 3 . 聪哥是怎么对文件流加密的?