Android 通过配置,设置margin-Left和margin-Top相对的距离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 通过配置,设置margin-Left和margin-Top相对的距离相关的知识,希望对你有一定的参考价值。
适用于任何屏幕分辨率和密度, 设置一个控件(例如LinearLayout), 使得其margin-left为三分之一的屏幕宽度,margin-top为三分之一的屏幕高度。
问: 通过代码设置LayoutParams当然很简单,但是用代码控制UI, 耦合性太高。 请问如何只通过配置实现。 当然,不用margin实现这种相对定位的方式也可以。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" >
<View android:layout_weight="1.0"
android:layout_width="match_parent" android:layout_height="0dp"/>
<LinearLayout android:layout_weight="2.0"
android:layout_width="match_parent" android:layout_height="0dp"
android:orientation="horizontal">
<View android:layout_weight="1.0"
android:layout_width="0dp" android:layout_height="match_parent"/>
<LinearLayout android:layout_weight="2.0"
android:layout_width="0dp" android:layout_height="match_parent">
//这个布局应该就是你要的
</LinearLayout>
</LinearLayout>
</LinearLayout>
追问Nice. 通过配置的方式,需要额外三个布控件撑开位置 ; 通过代码的话,只需要几行设置,但是耦合性高。 所以以你的个人经验,觉得哪种方式比较好?
追答配置布局方式被,只须关注自己想要的东西,布局交给.xml。
参考技术A下面推荐三种实现方式:
代码实现 先计算屏幕宽高 动态设置控件margin属性
布局实现 利用LinearLayout的layout_weight属性实现
借助google官方的百分比库(percent)
比较下三种实现方式优劣
第一种实现较简单 但是比较麻烦 复用性不高 如果是动态的比例放置控件推荐使用
第二种在布局中写 于代码解耦 但容易造成布局冗余 影响效率
第三种适配性好 同时兼容平板 如果对适配要求比较高 可以考虑使用
android真机调试时,访问本地服务ip设置
前提:android通过wifi连接网络a,真机处于网络b,网络a与网络b处于不同网段,可以通过增加route,互相ping通,如果网络a与网络b是在公网当中,则无需进行
如下操作。
使用android真机进行调试时,如果要访问本机的服务下的资源,配置ip需进行如下配置
1.android手机通过wifi连接网络,该网络与本机所处网络在不同网段,但是通过增加路由可以ping通,则可使用该方法继续配置,如果不能ping通,则该方法无效,无需往下进行
在本机执行如下操作,增加路由,启动命令行,执行如下操作。
route delete 0.0.0.0
route add 192.1.1.0 mask 255.255.255.0 192.1.1.2 -p
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 -p
route print
具体值根据网络情况配置
2.打开本机服务,例如hfs,wampserver等,与此同时,需要在windows防火墙中,增加入站规则,新增80端口入站。
3.在安卓程序中,配置本机服务的ip,该ip为本机的局域网真实ip
以上是关于Android 通过配置,设置margin-Left和margin-Top相对的距离的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )