Articles of android relativelayout

Android的RelativeLayout似乎坏了

我正在使用ListView和RelativeLayout行项目进行布局。 lineitems本身无法正确显示。 问题是txtVideoDuration TextView是在行项目的顶部而不是在底部绘制的。 因此,txtVideoTitle的高度为0.正如您在XML中看到的那样,txtVideoDuration应该被限制在ListView的底部。 我的目标是使布局类似于谷歌给我的教程。 示例: http : //android-developers.blogspot.com/2009/02/android-layout-tricks-1.html 我正在使用Android 2.0.1。 我甚至插入了示例布局而不修改ListView并发生相同的行为。 这个简单的案例有效。 这是活动的根XML布局。 顶部的错误代码是列表视图中的行项目。 似乎ListView本身正在打破它。 这是将订单项膨胀到ListView中的getView代码。 static class ViewHolder { TextView txtTitle; ImageView imgThumbnail; TextView txtDuration; Uri videoLocation; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView == null) { LayoutInflater li = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = li.inflate(R.layout.listitem_videolineitem, […]

Android RelativeLayout选择器state_pressed不起作用

我有这样的RelativeLayout : 看起来像: 我的contacts选择器似乎: 如你所见,我有3张图片:默认情况下,选中并按下。 但我有一个问题: 只有默认和state_selected图像按预期工作,但state_pressed似乎不起作用。 我有几个上面提到的RelativeLayouts ,没有人使用state_pressed 。 有谁知道我的问题在哪里? 谢谢!

自定义视图onMeasure:如何根据高度获取宽度

我的问题的先前版本太冗长了。 人们无法理解它,所以以下是完全重写。 如果您对旧版本感兴趣,请参阅编辑历史记录 。 RelativeLayout父亲将MeasureSpec发送到其子视图的onMeasure方法,以查看孩子想要的大小。 这发生在几次通过中。 我的自定义视图 我有自定义视图 。 随着视图内容的增加,视图的高度也会增加。 当视图达到父级允许的最大高度时,视图的宽度会随着任何其他内容而增加(只要为宽度选择了wrap_content )。 因此, 自定义视图的宽度直接取决于父级所说的最大高度必须是什么。 (不和谐的)父母对话 onMeasure传递1 RelativeLayout父母告诉我的观点,“你可以是任何宽度高达 900 ,任何高度高达 600你怎么说?” 我的观点是,“嗯,在那个高度,我可以适应宽度为100所有东西。所以我的宽度为100 ,高度为600 ” onMeasure传递2 RelativeLayout父母告诉我的观点,“你上次告诉我你要宽100 ,所以让我们把它设置为一个精确的宽度。现在,基于那个宽度,你想要什么样的高度?任何高达 500是好。” “嘿!” 我的观点回复。 “如果你只给我一个500的最大高度,那么100就太窄了。我需要宽度为200的那个高度。但很好,按你的方式行事。我不会违反规则(但……我的宽度为100 ,高度为500 “ 最后结果 RelativeLayout父级为视图指定宽度的最终大小为100 ,高度为500 。 对于视图来说,这当然太窄了,部分内容会被剪裁。 “叹气,”我的看法。 “为什么我的父母不让我更宽?有足够的空间。也许Stack Overflow上的某个人可以给我一些建议。”

android RelativeLayout以编程方式更改高度

我尝试以编程方式更改布局高度。 我有两个按钮。 在一个按钮我更改我的布局位置和第二个按钮我试图接收保存位置,这是我第一次。 这是我的布局,并在我写的第一个按钮 RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout); scrollpopap.setLayoutParams(parms); scrollpopap.setScrollingEnabled(true); 和第二个按钮 RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, 300); rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); scrollpopap.setLayoutParams(rel_btn); scrollpopap.setScrollingEnabled(false); 在xml文件中,我写了高度200dp和编程300,并有不同的高度。 我怎样才能以编程方式编写保存高度? 如果有人知道解决方案,请帮助我谢谢

在java代码中设置RelativeLayout

我很难让两个文本视图在我的Java代码中出现在彼此的顶部。 这是我正在试验的代码: /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); layout = new RelativeLayout(this); text1 = new TextView(this); text1.setText("1"); text2 = new TextView(this); text2.setText("2"); RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); RelativeLayout.LayoutParams q = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); q.addRule(RelativeLayout.BELOW, layout.getId()); text1.setLayoutParams(q); layout.addView(text1); p.addRule(RelativeLayout.BELOW,text1.getId()); text2.setLayoutParams(p); layout.addView(text2); setContentView(layout); } 这将两个文本视图堆叠在同一行上,但我希望TextView text2出现在TextView text1下面,所以在我的应用程序中,我希望以下内容显示为输出: […]

绑定视图在RelativeLayout中拖动

我在RelativeLayout里创build了一个可拖动的视图 。 但它似乎超越了RelativeLayout。 我只是想在ViewGroup里面做一个可拖动的View 这个视图可以根据屏幕draggable 。 它可以在RelativeLayout的边界之外拖动。 我怎么能限制它在RelativeLayout中保持可拖动。 CustomImageButton public class ImageButtonCustom extends ImageButton implements View.OnTouchListener{ float dX, dY; private RelativeLayout rootView; private ImageButtonCustom imageButtonCustom; private OnMoveListener onMoveListener; public ImageButtonCustom(Context context,RelativeLayout rootView){ super(context); this.rootView = rootView; init(); } public ImageButtonCustom(Context context) { super(context); init(); } public ImageButtonCustom(Context context, AttributeSet attrs) { super(context, attrs); init(); } […]

Android自定义视图在调用invalidate后显示为纯黑色

在这个代码中,我想在两个ImageView的顶部之间画一条线。 但是,在运行应用程序时,在调用invalidate()之后,自定义视图显示为纯黑色。 这是我的代码: public class ArrowView extends RelativeLayout { public Paint paint; public Bitmap eraser; public Canvas cacheCanvas; public float leftX; public float leftY; public float rightX; public float rightY; public boolean update = false; public ImageView iv_leftArrow; public ImageView iv_rightArrow; private int w; private int h; LayoutInflater mInflater; public ArrowView(Context context) { super(context); this.setWillNotDraw(false); […]

ImageView adjustViewBounds不能用于相对布局

我有一个ImageView ,并将其layout_height设置为“100dp”,并将其layout_width设置为“wrap_content”。 使用的drawable具有更大的实际尺寸是130dp(宽)X 215dp(高)。 当ImageView放置在LinearLayout ,如果将adjustViewBounds设置为true,则会获得根据drawable的纵横比和layout_width测量的宽度。 但是,放置在RelativeLayout时,无论adjustViewBounds设置如何, ImageView都将获得与drawable(130dp)相同的宽度。 在这两种情况下,图像渲染correclty没有失真,但ImageView的界限是不同的。 RelativeLayout: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/background_light"> <ImageView android:layout_width="wrap_content" android:layout_height="100dp" android:adjustViewBounds="true" android:src="@drawable/phone_orange" android:contentDescription="@null" /> </RelativeLayout> LinearLayout: <?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:background="@android:color/background_light" android:orientation="vertical" > <ImageView android:layout_width="wrap_content" android:layout_height="100dp" android:adjustViewBounds="true" android:contentDescription="@null" android:src="@drawable/phone_orange" /> </LinearLayout> 为什么ImageView在这两种情况下的测量方式不同? 有没有办法使ImageView行为总是像在LinearLayout的情况下(包装LinearLayout工程,但它不是一个干净的解决scheme)?

如何在android中构build键盘提示布局

现在我已经创build了一个使用线性布局的键盘布局,每个键是一个图像,例如“Q”,“W”,“E”是不同的图像。 问题是,如何在上面添加提示图片? 这个想法是,提示图像是默认隐藏的,当用户长按键时,提示图像被显示。 我有一套提示图像。 任何想法将它们添加到键盘布局? 非常感谢您的帮助。 这是键盘布局参考 <LinearLayout android:id="@id/training_keyboard" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignParentBottom="true" android:padding="5dp" android:background="@color/colorBg"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:weightSum="10" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/key1" android:layout_width="0dp" android:layout_height="wrap_content" android:adjustViewBounds="true" android:layout_weight="1" android:padding="2dp" android:tag="手" android:src="@drawable/keyboard_letter_r1_1" /> <ImageView android:id="@+id/key2" android:layout_width="0dp" android:layout_height="wrap_content" android:adjustViewBounds="true" android:layout_weight="1" android:padding="2dp" android:tag="田" android:src="@drawable/keyboard_letter_r1_2" /> <ImageView android:id="@+id/key3" android:layout_width="0dp" android:layout_height="wrap_content" android:adjustViewBounds="true" android:layout_weight="1" android:padding="2dp" android:tag="水" android:src="@drawable/keyboard_letter_r1_3" /> <ImageView android:id="@+id/key4" android:layout_width="0dp" android:layout_height="wrap_content" […]

调整图像大小时,毕加索不保留纵横比

我想保留一个imageView的纵横比,并调整它的大小,尽可能大地填充/合适,而不会使用毕加索扭曲/改变纵横比。 到目前为止,我发现这一点: 缩放在毕加索的图像大小 这表明使用: .fit().centerInside() 然而,当我尝试它: Picasso.with(this).load(boxart) .fit().centerInside() .into(imageItem); 随着我的XML: … <RelativeLayout android:id="@+id/rl_ListView1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_centerInParent="true" android:layout_gravity="left" android:layout_weight="0.3" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:scaleType="fitXY" android:layout_gravity="left" /> </RelativeLayout> … 然而,图像仍然出现扭曲(它显得太长而瘦) – 它的原始长宽比是扭曲的),我不确定为什么。