Android visualstudioweb控件相对布局中控件与另一右边对齐为什么实现不了?

请问下android里面如何让RelativeLayout外的某个控件与RelativeLayout里面的某个控件对齐_百度知道
请问下android里面如何让RelativeLayout外的某个控件与RelativeLayout里面的某个控件对齐
我有更好的答案
我以前也想过。但直接的设置属性是不可能的,间接使用外层容器LinearLayout的权重在多分辨率的屏幕下好一点。坐标设置方法不可取。应该优化自己的布局,尽量少一些Layout层,好对齐和style处理,还提高了效率;或者使用相同子layout在上层布局中分布,这样就是层级多了。
采纳率:70%
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫一扫体验手机阅读
RelativeLayout相对布局各种常见的问题
<span type="1" blog_id="1656523" userid='
11篇文章,8180人气,0粉丝
<span type="1" blog_id="1656523" userid='&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Android学习&LinearLayout布局中实现左右对齐
摘要:在android中的控件LinearLayout中的android:gravity=&center&属性,要么是居左、居右、居中对齐,android:gravity=&right&和android:gravity=&left&并不能达到双控件的左右两端对齐,要实现两端对齐方式,要采用中间增加一个控件的方式实现,并设置属性android:layout_weight=&1&,原因是设置android:
在android中的控件LinearLayout 中的android:gravity=&center& 属性,要么是居左、居右、居中对齐,android:gravity=&right& 和 android:gravity=&left&并不能达到双控件的左右两端对齐,
要实现两端对齐方式,要采用 中间增加一个控件的方式实现 ,并设置属性android:layout_weight=&1&,原因是设置android:layout_weight=&1&,就把控件均分了。
具体的布局文件如下:
&?xmlversion=&1.0″encoding=&utf-8″?&
&LinearLayout
android:layout_width=&match_parent&
android:layout_height=&20dp&
android:background=&#EFEFEF&
android:orientation=&horizontal&&
android:text=&button1&
android:layout_marginLeft=&4dp&
android:id=&@+id/btnlogin_main&
android:layout_height=&20dp&
android:layout_width=&wrap_content&
android:textSize=&12dp&
android:background=&#EFEFEF&
android:textColor=&#404040&&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_weight=&1& /&
android:id=&@+id/btnSetting_Main&
android:layout_marginRight=&4dp&
android:layout_width=&wrap_content&
android:layout_height=&20dp&
android:text=&button2&
android:textSize=&12dp&
android:background=&#EFEFEF&
android:textColor=&#404040&&
&/LinearLayout&
实现两个button按钮 两端对齐
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
邮箱低至5折
推荐购买再奖现金,最高25%
&200元/3月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Android学习&LinearLayout布局中实现左右对齐相关信息,包括
的信息,所有Android学习&LinearLayout布局中实现左右对齐相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
Internationalandroid,利用layoutParams代码动态布局空间位置
开发:LayoutParams的用法
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的&4行4列&就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住就好。
在JAVA中动态构建的布局,常常这样写:
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
上面这一句话其实是子对父的,也就是说,父布局下的子控件要设置这句话。
因为布局很多,虽然都继承至ViewGroup但是各个布局还是有很大的不同。
很显然上面这句应该这样写才算准确:
setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.FILL_PARENT));
这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。
下面分别说下两个常用到布局:
1. FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现:这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。
下面分别说下两个常用到布局:
1. FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现:
FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);
lytp .gravity = Gravity.CENTER;
btn.setLayoutParams(lytp);
2. RelativeLayout下动态设置子控件居中:
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
btn1.setLayoutParams(lp);
从网页响应获取Json 对象,并解析
@SuppressWarnings(unchecked)
Map markJsonMap = (Map) mapJson.get(adlogo);
if(markJsonMap != null){
String position = (String) markJsonMap.get(position);
String markTumbString = (String) markJsonMap.get(thumb);
String smlscreen = (String) markJsonMap.get(smlscreen);
String bigscreen = (String) markJsonMap.get(bigscreen);
HomeActivity.mCornerMark.setPosition(position);
HomeActivity.mCornerMark.setThumb(markTumbString);
HomeActivity.mCornerMark.setSmlscreen(smlscreen);
HomeActivity.mCornerMark.setBigscreen(bigscreen);
setCornerMark();
解析后代码设置角标图片的大小,位置,异步下载图片
* 动态设置角标位置
private void setCornerMark(){
if(!HomeActivity.mCornerMark.getThumb().equals() && HomeActivity.mCornerMark.getThumb().length() != 0)
WindowManager wm = (WindowManager) mContex
.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
FrameLayout.LayoutParams reParams = (android.widget.FrameLayout.LayoutParams) HomeActivity.home_surface_viewLyout.getLayoutParams();
int width = reParams.
int height = reParams.
RelativeLayout.LayoutP
//width, height * 48 / 128
//获取控件布局参数
Configuration config = mContex.getResources().getConfiguration();
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE)
String[] paramString = HomeActivity.mCornerMark.getBigscreen().split(,);
int whidthString = Integer.parseInt(paramString[0]);
int heightString = Integer.parseInt(paramString[1]);
whidthString = DensityUtil.px2dip(mContex,whidthString);
heightString = DensityUtil.px2dip(mContex,heightString);
params = new LayoutParams(whidthString,heightString);
String[] paramString = HomeActivity.mCornerMark.getSmlscreen().split(,);
int whidthString = Integer.parseInt(paramString[0]);
int heightString = Integer.parseInt(paramString[1]);
whidthString = (int) (width*0.005*whidthString);
heightString = (int) (height*0.005*heightString);
whidthString = DensityUtil.px2dip(mContex,whidthString);
heightString = DensityUtil.px2dip(mContex,heightString);
params = new RelativeLayout.LayoutParams(whidthString,heightString);
//动态指定控件大小,位置
Log.v(Position, HomeActivity.mCornerMark.getPosition());
if(HomeActivity.mCornerMark.getPosition().equals(1)){
params.leftMargin=20;
params.topMargin=20;
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
else if(HomeActivity.mCornerMark.getPosition().equals(2)){
params.rightMargin=20;
params.topMargin=20;
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
}else if (HomeActivity.mCornerMark.getPosition().equals(3)) {
params.leftMargin=20;
params.bottomMargin=20;
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
}else if(HomeActivity.mCornerMark.getPosition().equals(4)){
params.rightMargin=20;
params.bottomMargin=20;
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
HomeActivity.img_cornermark.setLayoutParams(params);
DownLoadTask downLoadTask = new DownLoadTask(HomeActivity.img_cornermark);
downLoadTask.execute(HomeActivity.mCornerMark.getThumb());
遇到的问题:
1. 在RelativeLayout里的布局,图片不显示?
RelativeLayout 层次布局是通过xml 文件 Relativelayout 由底层到外层进行布局的 ,应该在底层布局之上
2.在RelativeLayout里,代码实现位置是用
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
3.不同手机分辨率等比列显示:
String[] paramString = HomeActivity.mCornerMark.getSmlscreen().split(,);
int whidthString = Integer.parseInt(paramString[0]);
int heightString = Integer.parseInt(paramString[1]);
whidthString = (int) (width*0.005*whidthString);
heightString = (int) (height*0.005*heightString);
whidthString = DensityUtil.px2dip(mContex,whidthString);
heightString = DensityUtil.px2dip(mContex,heightString);
params = new RelativeLayout.LayoutParams(whidthString,heightString);前段工作时,遇到一个布局困惑:有两个控件,上面是一个imageview,显示一个图片,现在是一个textview,显示一句话。这里两个控件要无缝上下布局,呈现出来的就是pop dialog的样子。所以需要上下两个控件左右对齐。
上面的控件是个imageview,那么这个pop的长度实际上是由下面的textview中内容的长度来决定的。所以需要第一个控件与第二个控件左右对齐才行。
大家尝试的时候会发现,如果是按照这个顺序,将imageview放在上面,而textview放在下面,imageview设置为于textview左右对齐是错误的。因为在对齐的时候,下面的控件还未定义,属于不可知的。
所以我采用的方法如下,让textview所在的布局位于imageview的下面,如果设置imageview在textview的上面是行不通的,大家可以试试看:
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/noButton"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:background="@android:color/transparent" &
android:id="@+id/alert_content_full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/tcl_toast_text"
android:background="@drawable/tcl_alert_content_rec"
android:layout_below="@+id/alert_title_full"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:text=""/&
&ImageView
android:id="@+id/alert_title_full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="50dip"
android:layout_alignLeft="@+id/alert_content_full"
android:layout_alignRight="@+id/alert_content_full"
android:background="@drawable/tcl_alert_title"
&/ImageView&
&/RelativeLayout&
浏览 21976
如沐春风的小妮
浏览: 50216 次
来自: 西安
test_angel 写道你是在801上面吗?801貌似对Di ...
你是在801上面吗?801貌似对Dialog的宽度有个最大的设 ...
写的挺好的。还有,一个变量,传入到一个内部构造类的时候,也必须 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 android studio 控件 的文章

 

随机推荐