zoukankan      html  css  js  c++  java
  • 指令汇B新闻客户端开发(六) 浅谈屏幕适配解决方案

         屏幕适配的问题,我相信很多大牛的经验远比我丰富,在此就简单的分享一下我所做的的屏幕适配方案,当然我说的是安卓方面的啦,嘿嘿,屏幕适配我们一般用1280*720的屏幕作为我们的主流开发屏,当然现在AndroidStudio上面可以直接看到所有种类的屏幕,大大方便了我们的开发。

        我们遵循的原则是不用AbsoluteLayout(绝对布局),多用相对布局&线性布局(权重), 要用dp,不用px。

        开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线。

    1、图片适配:不是很常用

    2、布局适配:不是很常用,  layout-800x480 专门适配480*800的屏幕

    3、 权重适配:android:weightSum="3"

    4、代码适配:获取屏幕宽高,动态计算控件

    int width=getWindowManager
    
    ().getDefaultDisplay().getWidth
    
    ();
    		
    		
    
    slidingMenu.setBehindOffset
    
    (width*200/320);// 设置预留屏幕的
    
    宽度
    5、尺寸适配:

        dp和px的关系: dp = px/设备密度


    float density = getResources().getDisplayMetrics().density;

               320*240(0.75), 480*320(1),480*800(1.5),1280*720(2)

    括号后面的就是计算出来的屏幕密度。
    我们可以在values->dimens.xml  中设置大小

    然后再新建一个文件夹:values-1280x720,当屏幕是1280*720的时候就优先加载这个文件夹的。


    public class DensityUtils {
    
    	/**
    	 * dp转px
    	 */
    	public static int dp2px(Context ctx, float dp) {
    		float density = ctx.getResources().getDisplayMetrics().density;
    		int px = (int) (dp * density + 0.5f);// 四舍五入
    
    		return px;
    	}
    
    	public static float px2dp(Context ctx, int px) {
    		float density = ctx.getResources().getDisplayMetrics().density;
    		float dp = px / density;
    
    		return dp;
    	}
    }


  • 相关阅读:
    Spark随机深林扩展—OOB错误评估和变量权重
    Spark随机森林实现学习
    RDD分区2GB限制
    Spark使用总结与分享
    Spark核心—RDD初探
    机器学习技法--学习笔记04--Soft SVM
    机器学习技法--学习笔记03--Kernel技巧
    机器学习基石--学习笔记02--Hard Dual SVM
    机器学习基石--学习笔记01--linear hard SVM
    特征工程(Feature Enginnering)学习记要
  • 原文地址:https://www.cnblogs.com/sdksdk0/p/5585119.html
Copyright © 2011-2022 走看看