Android 适配的一些总结

Android设备需要做适配,道理很简单。
1. Android开源,手机设备厂商众多标准很难统一。现状是Android设备各种屏,碎片化严重。
2. 如果不做适配,要么你的Android程序需求已经对设备进行了强制要求,要么就是你不想所有用户好好跑你程序。
3. 废话不多说了,怎么做呢?我看来有两种途径,一种是简单粗暴的获取设备长和宽,按照百分比设置控件的大小和间距,百度了一阵感觉没什么人介绍,可能是太简单了吧。另一种就是各种博客各种介绍的根据分辨率,像素,像素密度,图片分辨率大小综合上述因素再根据Android提供的适配方案,来进行Android设备的适配。
如何选择哪种方案,当只有一种分辨率的图片资源时,又没有一个得力的美工,或者处理图片的耐心,建议使用第一种方案。第二种方案实现网上教程很多,再此处不再赘述,想学习使用第二种方案的推荐看。屏幕适配全攻略。因为第一种方案我没百度到所以写下来。

首先,获取当前屏幕的宽度,高度。

     DisplayMetrics dm=new DisplayMetrics();
     dm=getResources().getDisplayMetrics();
     int screenHeight=dm.heightPixels;
     int screenWidth=dm.widthPixels;
     setViewWidthAndHeight(questionBordPager, (int)(screenWIdth*0.5), (int)(screenHeight*0.21));

其次,设置View的长宽

public void setViewWidthAndHeight(View view,int Width,int height){
    ViewGroup.LayoutParams params=view.getLayoutParams();
        params.width=width;
        params.height=height;
        view.setLayoutParams(params);
        }

最后,设置控件间隔

public void setMarginTop(View view,int top)
    {
        ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
        params.setMargins(0, top, 0, 0);
        view.setLayoutParams(params);
    }
    public void setMarginRight(View view,int right)
    {
        ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
        params.setMargins(0, 0, right, 0);
        view.setLayoutParams(params);
    }
    public void setMarginLeft(View view,int left)
    {
        ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
        params.setMargins(left, 0, 0, 0);
        view.setLayoutParams(params);
    }
    public void setMarginLeftAndTop(View view,int left,int top)
    {
        ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
        params.setMargins(left, top, 0, 0);
        view.setLayoutParams(params);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值