教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Android培训之屏幕适配(2)

更新时间: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培训学院

首发:http://www.itcast.cn/Android

0 分享到:
和我们在线交谈!