弹性布局和AndroidAutoSize屏幕适配

弹性布局和AndroidAutoSize屏幕适配导言:技术在不断的革新,需要有新的技术代替老的方案,老的不再维护,新的一直推荐,作为技术也不能一直停滞不前概念:弹性布局(约束布局):ConstraintLayout可以算是RelativeLayout的升级版屏幕适配:百分比和最小宽度从px的AndroidAutoLayout方案到dp,pm等主副单位AndroidAutoSize方案案例步骤:1:ConstraintLayo…

大家好,又见面了,我是你们的朋友全栈君。

导言:
技术在不断的革新,需要有新的技术代替老的方案,老的不再维护,新的一直推荐,作为技术也不能一直停滞不前

概念:
弹性布局(约束布局): ConstraintLayout可以算是RelativeLayout的升级版
屏幕适配: 百分比和最小宽度从px的AndroidAutoLayout方案到dp,pm等主副单位AndroidAutoSize方案

案例步骤:
1:ConstraintLayout(弹性布局(约束布局)):
基本属性:crr,clr,ctb等等,按照400×640设计图dp编写

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/dp400"
android:layout_height="wrap_content"
tools:context="MainActivity">
<com.youth.banner.Banner
android:id="@+id/main_banner"
android:layout_width="wrap_content"
android:layout_height="315dp"
android:layout_alignParentTop="true"
android:background="#fff"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_alignParentTop="true"
android:alpha="0.2"
android:background="#FFFFFF"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="100dp"
android:layout_height="17dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="7dp"
android:src="@drawable/logo_main"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/main_exit_dialog_iv"
android:layout_width="28dp"
android:layout_height="18dp"
android:layout_marginRight="15dp"
android:layout_marginTop="4dp"
android:src="@drawable/back_button_main"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/main_notice_iv"
android:layout_width="18dp"
android:layout_height="10dp"
android:layout_marginLeft="@dimen/dp16"
android:layout_marginTop="@dimen/dp10"
android:background="@drawable/notice"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_banner" />
<TextView
android:id="@+id/main_notice_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp10"
android:layout_marginTop="@dimen/dp5"
android:text="@string/lottery_notice"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_notice_iv"
app:layout_constraintTop_toBottomOf="@+id/main_banner" />
<ImageView
android:id="@+id/main_image_iv"
android:layout_width="171dp"
android:layout_height="256dp"
android:layout_marginLeft="@dimen/dp16"
android:layout_marginTop="@dimen/dp5"
android:src="@drawable/main_image"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_notice_iv" />
<Button
android:id="@+id/main_p3_bt"
android:layout_width="55dp"
android:layout_height="@dimen/dp32"
android:layout_marginLeft="12dp"
android:layout_marginTop="@dimen/dp5"
android:background="@drawable/button_select_p3"
tools:layout_editor_absoluteX="200dp"
tools:layout_editor_absoluteY="346dp"
app:layout_constraintLeft_toRightOf="@+id/main_image_iv"
app:layout_constraintTop_toBottomOf="@+id/main_notice_detail"/>
<Button
android:id="@+id/main_p5_bt"
android:layout_width="@dimen/dp55"
android:layout_height="32dp"
android:layout_marginLeft="12dp"
android:layout_marginTop="@dimen/dp5"
android:background="@drawable/button_select_p5"
app:layout_constraintLeft_toRightOf="@+id/main_p3_bt"
app:layout_constraintTop_toBottomOf="@id/main_notice_iv" />
<Button
android:id="@+id/main_p10_bt"
android:layout_width="55dp"
android:layout_height="32dp"
android:layout_marginLeft="12dp"
android:layout_marginTop="@dimen/dp5"
android:background="@drawable/button_select_p10"
app:layout_constraintLeft_toRightOf="@id/main_p5_bt"
app:layout_constraintTop_toBottomOf="@id/main_notice_iv" />
<TextView
android:id="@+id/main_ten_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp17"
android:layout_marginTop="@dimen/dp13"
android:text="bbbbbbbbb"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@id/main_image_iv"
app:layout_constraintTop_toBottomOf="@id/main_p3_bt" />
<TextView
android:id="@+id/main_ticket_num_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp19"
android:layout_marginRight="@dimen/dp19"
android:includeFontPadding="false"
android:text="0"
android:textColor="@color/result_view"
android:textSize="80sp"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/main_image_iv"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_ten_tv" />
<Button
android:id="@+id/main_sub_bt"
android:layout_width="@dimen/dp60"
android:layout_height="@dimen/dp60"
android:layout_marginLeft="@dimen/dp13"
android:layout_marginTop="@dimen/dp63"
android:background="@drawable/button_select_sub"
app:layout_constraintLeft_toRightOf="@+id/main_image_iv"
app:layout_constraintTop_toBottomOf="@id/main_ten_tv" />
<Button
android:id="@+id/main_add_bt"
android:layout_width="@dimen/dp60"
android:layout_height="@dimen/dp60"
android:layout_marginLeft="@dimen/dp13"
android:layout_marginRight="@dimen/dp13"
android:layout_marginTop="@dimen/dp63"
android:background="@drawable/button_select_add"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_ten_tv" />
<TextView
android:id="@+id/main_xjf_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp22"
android:layout_marginTop="5dp"
android:text="xxx"
android:textColor="@color/result_view"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_image_iv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<TextView
android:id="@+id/main_payment_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="0"
android:textColor="@color/color_006"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_xjf_tv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<TextView
android:id="@+id/main_yuan_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="aaa"
android:textColor="@color/result_view"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_payment_tv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<TextView
android:id="@+id/main_yuxia_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp15"
android:layout_marginTop="5dp"
android:text="yyyyy:"
android:textColor="@color/result_view"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_yuan_tv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<TextView
android:id="@+id/main_ticket_surplus_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="0"
android:textColor="@color/color_006"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_yuxia_tv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="aaa"
android:textColor="@color/result_view"
android:textSize="12sp"
app:layout_constraintLeft_toRightOf="@+id/main_ticket_surplus_tv"
app:layout_constraintTop_toBottomOf="@id/main_sub_bt" />
<Button
android:id="@+id/main_go_payment_bt"
android:layout_width="186dp"
android:layout_height="43dp"
android:layout_marginLeft="@dimen/dp13"
android:layout_marginTop="@dimen/dp5"
android:background="@drawable/go_buy"
app:layout_constraintLeft_toRightOf="@+id/main_image_iv"
app:layout_constraintTop_toBottomOf="@id/main_xjf_tv" />
<TextView
android:id="@+id/main_device_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp15"
android:layout_marginTop="@dimen/dp10"
android:text="aaaaa: "
android:textSize="11sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_image_iv" />
<TextView
android:id="@+id/main_device_serial_num_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp10"
android:text="00000000"
android:textSize="11sp"
app:layout_constraintLeft_toRightOf="@+id/main_device_tv"
app:layout_constraintTop_toBottomOf="@+id/main_image_iv" />
</android.support.constraint.ConstraintLayout>

2:AndroidAutoSize
2.1:导包

implementation 'me.jessyan:autosize:1.1.0'

2.2:配置androidmainfest,这个是按照UI给的设计图

 <meta-data
android:name="design_width_in_dp"
android:value="400" />
<meta-data
android:name="design_height_in_dp"
android:value="640" />

2.3:其他API
CustomAdapt:修改当前页面的设计图尺寸

public class MainActivity extends AppCompatActivity  implements CustomAdapt  {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
}
// @return {@code true} 为按照宽度进行适配, {@code false} 为按照高度进行适配
@Override
public boolean isBaseOnWidth() {
return true;
}
//根据上面这个赋值,比如原图是宽度400适配,这个改成360宽度
@Override
public float getSizeInDp() {
return 360;
}
}

CancelAdapt :保存原样,放弃自动适配

ok,结束,以后就用这个.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136557.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Hans Berger脑电图之父的人生摘要「建议收藏」

    Hans Berger脑电图之父的人生摘要「建议收藏」摘要:在1938年当脑电图被学术界接受之时,第二次世界大战要开始了,因为英美法都是敌对国,Berger访美计划搁浅。同时大概因为只是英美法学者对脑电图重视,德国本土学者根本不相信,德国当时的纳粹政权禁止研究脑电图。【转载】HansBerger(1873-1941)(上图)是德国精神病学家,精神生理学家,他对神经科学的贡献是发明了和命名了脑电图-Electroencephalography,EEG,德语是Elektrenkephalogramm。此外,Berger发现了“阿尔法波-AlphaWave”,

  • 镁光闪存颗粒对照表_内存颗粒版本判断方法和编号解析(三星、美光、海力士)…

    镁光闪存颗粒对照表_内存颗粒版本判断方法和编号解析(三星、美光、海力士)…因为昨天chh看到一个人还在用土办法去判断美光颗粒版本加上前面B站也有人问我怎么去判断内存颗粒版本使用今天就抽空写一下。1.三星三星官方命名文件如下:实例:第一行:“SEC843”重要信息为843代表内存颗粒生产日期第二行:“K4A4G08”重要信息为4G08代表内存颗粒容量和位宽(AG代表容量为16Gb)第三行:“5WTBCTD”重要信息为T、TD,T代表颗粒版本我这个就是T-DI…

  • 推荐:移动端前端UI库—Frozen UI、WeUI、SUI Mobile

    推荐:移动端前端UI库—Frozen UI、WeUI、SUI Mobile

  • 高通搜网流程_搜艺贝流程

    高通搜网流程_搜艺贝流程这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入https:…

  • Hadoop生态圈python + mapreduce + wordcount

    Hadoop生态圈python + mapreduce + wordcountHadoop生态圈python+mapreduce+wordcount启动hadoop进度发布文件hdfsdfs-put/home/hadoop/hadoop/input/user/hadoop/input查看hdfs现在有一些文件[hadoop@master0hadoop]$hdfsdfs-ls/Found1itemsdrwxr-xr-x-hadoopsupergroup02019-12-0402

  • 机器学习模型评估的方法总结(回归、分类模型的评估)

    机器学习模型评估的方法总结(回归、分类模型的评估)建模的评估一般可以分为回归、分类和聚类的评估,本文主要介绍回归和分类的模型评估:一、回归模型的评估主要有以下方法:指标 描述 metrics方法 MeanAbsoluteError(MAE) 平均绝对误差 fromsklearn.metricsimportmean_absolute_error MeanSquareError(MSE) …

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号