我在res / drawable文件夹中定义了一个自定义形状:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:color="#FF404040"
android:width="1dp"
android:dashGap="3dp"
android:dashWidth="3dp"
/>
<size
android:height="1dp"
/>
</shape>
我正在使用它作为我的一个观点的背景。形状垂直居中放置在视图内部,但我希望它显示在视图的底部,有没有办法做到这一点?
答案 0 :(得分:4)
我不确定是否有办法在视图中进行位置形状。但是作为一种解决方法,我会考虑这样的事情。
<RelativeLayout >
<OldView with shape as background now without any background
android:layout_alignParentTop="true" android:layout_alignParentBottom="true"/>
<View with this shape as background
android:layout_alignParentBottom="true"/>
</RelativeLayout>
这应该会给你你想要达到的目标。
答案 1 :(得分:2)
试试这个,这可能很有用,
http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/
将自定义视图设置为布局或视图的背景。 或者如果没用,那么在这里提供你的布局xml文件代码,这样我就可以更轻松地帮助你。
答案 2 :(得分:2)
以下内容接收形状的边距布局参数,以便您可以更改视图的边距,无论如何都可以定位:
MarginLayoutParams params = (MarginLayoutParams)shape.getLayoutParams();
// Sets the margins of the shape, making it move to a specific location on the screen
params.setMargins(int left, int top, int right, int bottom);
答案 3 :(得分:1)
我遇到了类似的问题,但是我希望我的视图有一个背景,一个矩形,但只显示矩形的左侧和底部,没有顶部或右侧。为了实现这一点,我使用了这个xml:
<?xml version="1.0" encoding="utf-8"?>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape
android:shape="rectangle" >
<stroke
android:width="1px"
android:color="#FFFF00" />
</shape>
</item>
<item
android:bottom="3dp"
android:left="3dp"
android:right="1dp"
android:top="1dp">
<shape
android:shape="rectangle" >
<stroke
android:width="1px"
android:color="#000000" />
</shape>
</item>
注意:有两个矩形,一个在另一个上面绘制,第二个绘制在第一个上面,但是有点偏移,所以1dp第一个在屏幕左侧和底部显示。此外,您必须注意第二个的颜色必须选择隐藏的颜色。就我而言,它是黑色。
结果是(您可能只在左侧和底部观察到黄线):
答案 4 :(得分:0)
I know gravity works on other kinds of drawables
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
答案 5 :(得分:0)
这是我决定嵌入图块
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid android:color="#f00" />
<corners android:radius="50dp" />
<padding android:bottom="20dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid android:color="#090" />
<corners android:radius="50dp" />
<padding
android:top="450dp"
/>strong text
</shape>
</item>
</layer-list>