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 强制指定依赖库 )

Android - 设置adb的usb连接配置

android真机调试时,访问本地服务ip设置

Android攻城狮OptionsMenu

Android设置/配置页面,androidx.preference的使用

android 设置全屏代码