对不起,如果我的话题令人讨厌,我不确定用哪个词来描述我需要的布局.
目前我正在开发一个项目,需要在mapview上覆盖一个空心布局,空心布局将用于显示远距离定位点,我发布图像来演示我的意思.
基本上整个屏幕由Mapview填充,叠加布局应覆盖它而不覆盖中心,就像我在图像中显示的那样.
这是xml显示我做了如上所述的布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.maps.MapView
android:id="@+id/MapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="..."
/>
<View
android:layout_width="320dip"
android:layout_height="50dip"
android:layout_gravity="center_horizontal|top"
android:background="#800ff4ff"
android:textColor="#ffffffff" />
<View
android:layout_width="320dip"
android:layout_height="50dip"
android:layout_gravity="center_horizontal|bottom"
android:background="#800ff4ff"
android:textColor="#ffffffff"
/>
<View
android:layout_width="50dip"
android:layout_height="520dip"
android:layout_gravity="center_vertical|right"
android:background="#800ff4ff"
android:textColor="#ffffffff" />
<View
android:layout_width="50dip"
android:layout_height="520dip"
android:layout_gravity="center_vertical|left"
android:padding="20dip"
android:background="#800ff4ff"
android:textColor="#ffffffff" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我使用framelayout来允许布局覆盖其他布局,并在每个边缘创建4个sepreate来模拟我真正想要的东西(空心).我只是不确定是谁让布局只显示4边并保持中心隐形,如果任何人可以帮助请给我一些指导.谢谢.
您可以使用另一个符合要求的简单选项.
创建具有已定义形状的新drawable资源.调用此资源(XML文件):margin_border.xml并将其放在drawable文件夹下.这个XML的内容:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="50dp"
android:color="#800ff4ff" />
<solid android:color="#00000000" />
</shape>
Run Code Online (Sandbox Code Playgroud)
说明: 此形状将充当内部布局的边框/框架.作为边框的'stroke'属性可以是您想要的任何颜色,'solid'属性具有透明颜色.
然后在主布局中使用此形状:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/MapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:apiKey="..."
android:clickable="true"
android:enabled="true" />
<!-- Set hollow layout -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/margin_border"
android:padding="50dp" >
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
说明: 主要布局是RelativeLayout.MapView没有改变,除了对齐所有方向的alignParent标志,如此处所示设置为true.
最后使用您想要的任何布局为中心.我使用LinearLayout,而背景引用了drawable形状.
注意:此布局的填充必须与形状中的笔触宽度相同.在这种情况下,它是50dp
这是它在我的手机上的样子(截图):
归档时间: |
|
查看次数: |
2978 次 |
最近记录: |