android 最新头条适配,android 平板适配,今日头条适配(同时适配手机和平板)

新项目,做平板适配,看了网上的很多适配方案,感觉都不合适,最后,干脆用今日头条适配. 经几个月的临床经验,果然能用,但是要注意几个问题: (顺便说一下,如果身边有丝袜,短裙,哈哈哈哈,好姑娘....? 记得给我介绍一下,当然,如果是异域(

新项目,做平板适配,看了网上的很多适配方案,感觉都不合适,最后,干脆用今日头条适配.

经几个月的临床经验,果然能用,但是要注意几个问题:

(顺便说一下,如果身边有丝袜,短裙,哈哈哈哈,好姑娘....? 记得给我介绍一下,当然,如果是异域(少数民族或国外)风味的,这个最好)

0,首先,在Application中引入,这个不解释(如果想搞手机和平板一起兼容,请认真看)

//初始化今日头条适配

AutoSize.initCompatMultiProcess(this);

1,引入依赖

//今日头条的适配

implementation 'me.jessyan:autosize:1.2.1'

2,在basicActivity中重写一个方法,必须写这个方法.是所有的basicAcitivity类

@Override

public Resources getResources() {

//需要升级到 v1.1.2 及以上版本才能使用 AutoSizeCompat

AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources()));//如果没有自定义需求用这个方法

return super.getResources();

}

3,清单文件中写入

android:name="design_width_in_dp"

android:value="1800" />

android:name="design_height_in_dp"

android:value="2560" /> //根据UI图进行自己设置,这里不需要创建很多value

//

// android:name="fontsize"

// android:value="1.0" />

//

// android:name="unit"

// android:value="px" />

2aa5c2819a3b9c9d8cd53dbe7a81d508.png

这里可能有人要问了,为啥要有layout-large,因为我的app要兼容手机和平板,?系统会自动识别,仅仅创建两个布局就行,但是名字要一样,如果做兼容手机和pad,基本上不会做多布局调整的,仅仅调整显示的参数,这个妥妥的够了

81c7c7ab955b9183f8609aa45615bdda.png

?你也这样就能适配pad?做梦呢?如果界面不同id不同怎么办?

48f3bcb16324ce317d53f20a183f9cb7.png

如果界面不同,id不同,还想在同一个界面,这时要注意用这个形式获取id不会报错(这特么才是核心)

mPhone = (TextView) findViewById(getPhoneId());

private int getPhoneId() {

return R.id.phone;

}

4,在BasicFragment中引入

AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources()));//如果没有自定义需求用这个方法

5,你以为这样,界面的UI就稳定了?你以为这样UI界面不会变的忽大忽小的?啊呸!

针对Scrollview,和RecyclerView等,部分UI图片还是会忽大忽小的,这时

在popupwind引入布局时再加入

AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources()));//如果没有自定义需求用这个方法

在Dialog的show之前

AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources()));//如果没有自定义需求用这个方法

尤其是第三方的

BaseQuickAdapter或者

BaseMultiItemQuickAdapter

这时

(1)界面所在Fragment 引入,除了BasicActivity引用外,BasicFragment引入外,所在的Fragment也要引入,一句话针对显示不正常UI界面,多多进入即可

AutoSizeCompat.autoConvertDensityOfGlobal(mResources);//如果没有自定义需求用这个方法

(2)设置adapter中设置

mAdapter = new LearningPracticeLiftAdapter(mList,mResources);

AutoSizeCompat.autoConvertDensityOfGlobal(mResources);//如果没有自定义需求用这个方法

learnPracticeRecycler.setAdapter(mAdapter);

(3)设置布局时,再次设置

AutoSizeCompat.autoConvertDensityOfGlobal(mResources);//如果没有自定义需求用这个方法

addItemType(ConstantUtils.ONE, R.layout.items_learning_practice); //1

AutoSizeCompat.autoConvertDensityOfGlobal(mResources);//如果没有自定义需求用这个方法

addItemType(ConstantUtils.TWO, R.layout.items_learning_practice_will);//2

AutoSizeCompat.autoConvertDensityOfGlobal(mResources);//如果没有自定义需求用这个方法

其实我也不知道哪个方法起作用了,最后,上线半年,基本上,没有遇到适配问题

以上信息来源于网络,如有侵权,请联系站长删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值