如何为 LinearLayout 创建背景,如下图所示
Posted
技术标签:
【中文标题】如何为 LinearLayout 创建背景,如下图所示【英文标题】:How to create background for LinearLayout as shown in the image below 【发布时间】:2015-02-27 13:02:30 【问题描述】:。我不知道该怎么做。
【问题讨论】:
最简单的方法是放一张图片,比如背景。 指定你投-ive投票的原因...... 我想以某种实用的方式绘制它,不想使用图片......@MikiFranko 如果是这样,你必须使用画布,你可以随心所欲地画。 @MikiFranko 上面的图像在顶部边缘也有阴影,所以我如何在画布上绘制它。有什么帮助?????? 【参考方案1】:创建一个黄色背景的RelativeLayout
,并在顶部添加圆形图像。
这是一个比使用单个图像更具动态性的解决方案,因为 RelativeLayout
会根据屏幕尺寸/方向改变尺寸,并且不会影响圆圈的大小
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="#ffc20e">
<ImageView
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/circle_image" />
</RelativeLayout>
【讨论】:
【参考方案2】:您可以使用相对布局将视图添加到另一个视图之上。对于上面提到的图像,您只需要两个图像并且您必须像这样创建布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_ >
<ImageView
android:layout_
android:layout_
android:background="@drawable/white_image" />
<ImageView
android:layout_
android:layout_
android:background="@drawable/yellow_image" />
</RelativeLayout>
要添加动态视图,您可以将叠加位图创建为:
LayoutInflater inflater = LayoutInflater.from(getActivity());
Bitmap bitmapCopy1 = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Bitmap.Config.ARGB_8888);
canvas1 = new Canvas(bitmapCopy1);
Bitmap pinImage = Utility.createBitmap(pinFloor);
canvas1.drawBitmap(pinImage, leftPos[i], topPos[i], new Paint());
firstImage.setImageBitmap(firstBitmap);
firstImage.setImageBitmap(bitmapCopy1);
firstImage.invalidate();
【讨论】:
但是根据我的要求,我必须以某种方式在不使用图像的情况下以编程方式绘制它...... @user3074539 扩展View
并覆盖方法onDraw()
。你可以在那里画任何你喜欢的东西(以编程方式)。以上是关于如何为 LinearLayout 创建背景,如下图所示的主要内容,如果未能解决你的问题,请参考以下文章