更新时间:2016年10月31日17时30分 来源:传智播客Android培训 浏览次数:
2,如何支持屏幕的密度?
对于屏幕密度进行优化,主要指的就是放置图片。
1.如果需要设定控件或者图片的宽高时,使用非密度制约像素,也就是dp和sp,可以适配屏幕的大小和密度。
2.提供备用的视图。
提供多套图片。
这样高分辨的手机显示不会造成模糊的现象,低分辨率手机显示不会模糊图片也不会内存溢出。
3.如何去实施自适应的用户界面的流程。
(1).确定当前的布局。
(2).确定当前布局做出的响应。显示结果是单面板还是双面板。
(3).可以重复的使用其他的activity当中的碎片。
(4).处理屏幕适配时发生的变化。
在代码中获取屏幕的宽度和高度:
//获取屏幕宽高的第一种方式:
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
Log.i("tag", "width=="+width+",height=="+height);
//获取屏幕宽高的第二种方式:
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
width = outMetrics.widthPixels;
在代码中获取包的信息的方法:
String pkName = this.getPackageName();
Log.i("tag", "当前应用的包名:"+pkName);
//获取应用包管理器
PackageManager pm = this.getPackageManager();
//获取应用的信息
try {
PackageInfo info = pm.getPackageInfo(pkName, 0);
int versionCode = info.versionCode;
String versionName = info.versionName;
Log.i("tag", "versionCode=="+versionCode+",versionName=="+versionName);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
图片的加工处理代码:
//1.得到用来设置图片尺寸的参数的对象
BitmapFactory.Options options = new BitmapFactory.Options();
//2.解码边缘
options.inJustDecodeBounds = true;
//3.对图片进行解码
BitmapFactory.decodeByteArray(data, 0, data.length, options);
//4.获取图片原来的宽度和高度
int oldWidth = options.outWidth;
int oldHeight = options.outHeight;
//5.得到压缩的比例
double scaleWidth = oldWidth/newWidth; //宽度要压缩的比例
double scaleHeight = oldHeight/newHeight; //高度要压缩的比例。
//6.取出宽高的压缩比例当中较大的值作为缩放比例
int scale = (int) Math.round(scaleHeight>scaleWidth?scaleHeight:scaleWidth);
//7.设置参数当中的缩放比例,必须要设置大于1的整数,数越大,缩放越小
options.inSampleSize = scale;
//8.缩放边缘
options.inJustDecodeBounds = false;
//9.通过属性参数对象得到新的位图
Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length,options);
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院