Android 以编程方式设计布局
Posted
技术标签:
【中文标题】Android 以编程方式设计布局【英文标题】:Android Designing Layout programmatically 【发布时间】:2014-07-17 06:57:02 【问题描述】:如何以编程方式在 android 中制作此布局。
我只想要一个想法而不是整个编码。
【问题讨论】:
为什么图片没有显示?你有人看到这个问题只是我的形象吗? 我可以看到图像。但是你应该多解释一下。哪些部分是布局元素,什么是静态图片?RelativeLayout
几乎一切皆有可能
其实我不知道怎么添加这些类型的参数,android:layout_alignBottom, android:layout_alignLeft 等等
您需要在RelativeLayout.LayoutParams
中使用addRule()
设置它们。见the docs
【参考方案1】:
这是答案,但不是直接答案。这就是我个人以编程方式创建复杂布局的方法。
在 XML 中创建相同的布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_ >
<ImageView
android:id="@+id/imageView1"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/some_big_image" />
<RelativeLayout
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="#DD000000" >
<ImageView
android:id="@+id/imageView2"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_
android:layout_
android:layout_alignTop="@+id/imageView2"
android:layout_toRightOf="@+id/imageView2"
android:text="TextView"
android:textColor="@android:color/white" />
<TextView
android:id="@+id/textView2"
android:layout_
android:layout_
android:layout_alignBottom="@+id/imageView2"
android:layout_toRightOf="@+id/imageView2"
android:text="TextView"
android:textColor="@android:color/white" />
</RelativeLayout>
现在从 top parent 到 child。
RelativeLayout mParent = new RelativeLayout(this);
RelativeLayout.LayoutParams mParentParams = new RelativeLayout.LayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
mParent.setLayoutParams(mParentParams);
ImageView mBigImageView = new ImageView(this);
mBigImageView.setLayoutParams(mParentParams);
mParent.addView(mBigImageView);
随着您练习,您可以直接编写相同的代码,而无需创建 xml。
【讨论】:
【参考方案2】:基本思路:
创建一个RelativeLayout
,其中包含一个ImageView
和两个底部对齐的TextView
设置RelativeLayout
的alpha来调整透明度
【讨论】:
其实我不知道怎么添加这些类型的参数,android:layout_alignBottom, android:layout_alignLeft 等等。 @Yawar 请看一下这个链接:developer.android.com/guide/topics/ui/layout/relative.html 这会给你一些基本的想法【参考方案3】:您可以有一种相对布局,其中包含一个用于大图像的图像视图,在它之下还有一个包含图像和文本的线性布局,如“珍珠大陆...”,并且衬里布局的背景应该是 50-60% 透明。 使用形状为 LL 创建背景。并将其设置为对齐父(相对)布局的底部。 希望对你有帮助
【讨论】:
其实我不知道怎么添加这些类型的参数,android:layout_alignBottom, android:layout_alignLeft 等等 最好在 xml 中创建布局,然后在需要的地方进行扩展。充气后为每个项目设置所需的值 上面也提供了一个样本 实际上我在视图分页器控件中有 3 个视图,这三个视图的布局彼此不同。我正在搜索您建议的内容,但找不到任何有用的内容。这就是为什么要以编程方式进行。 如果您有多个视图要显示在视图分页器中,那么您需要确定要在适配器类中显示哪个视图,然后在适配器中扩展相应的视图。所以同样会在 viewpager 中更新。以上是关于Android 以编程方式设计布局的主要内容,如果未能解决你的问题,请参考以下文章