[英]Android, how to set imageview with percentage in relativelayout
I want to build a UI like this http://postimg.cc/image/fihidv1rv/ . 我想建立一个像这样的http://postimg.cc/image/fihidv1rv/的用户界面。 Here is my xml code for it, for my design, I want "EFFECT" & "CAMERA" to combine as one
ImageView
like "SHOP" in the link so there will be total 5 ImageView
s, and I set the id as they named in the link 下面是它,因为我的设计,我想“效果”和“照相机”作为一个结合自己的XML代码
ImageView
像链接“SHOP”所以会有总共5 ImageView
s和我将id为他们命名在链接中
the problem is, how can I set the height and width with percentage? 问题是,如何设置高度和宽度百分比?
effect+camrea: height 25%,width 100% 效果+ camrea:高度25%,宽度100%
collage: height 25%,width 50% 拼贴:高度25%,宽度50%
draw: height 25%,width 50% 绘制:高度25%,宽度50%
photo: height 50%,width 50% 照片:身高50%,宽50%
shop: height 25%,width 100% 店铺:高25%,宽100%
<RelativeLayout android:id="@+id/mainContent" android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="horizontal" android:background="#ffffff">
<ImageView
android:id="@+id/img_effect+camera"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/a" />
<ImageView
android:id="@+id/img_collage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/img_effect+camera"
android:src="@drawable/b" />
<ImageView
android:id="@+id/img_draw"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/img_effect+camera"
android:layout_toRightOf="@+id/img_collage"
android:src="@drawable/c" />
<ImageView
android:id="@+id/img_photo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/img_collage"
android:layout_below="@+id/img_draw"
android:src="@drawable/d" />
<ImageView
android:id="@+id/img_shop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/img_photo"
android:src="@drawable/e" />
</RelativeLayout>
You can consider using android:layout_weight param in the layout http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#attr_android:layout_weight 您可以考虑在布局http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#attr_android:layout_weight中使用android:layout_weight param
<LinearLayout android:id="@+id/mainContent" android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:background="#ffffff">
<!-- height 25% -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_effect"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/a" />
<ImageView
android:id="@+id/img_camera"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/a" />
</LinearLayout>
<!-- height 50% -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="horizontal">
<!-- width 50% -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<!-- height 50%% -->
<ImageView
android:id="@+id/img_collage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/a" />
<!-- height 50%% -->
<ImageView
android:id="@+id/img_draw"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/a" />
</LinearLayout>
<!-- width 50% -->
<ImageView
android:id="@+id/img_photo"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:src="@drawable/b" />
</LinearLayout>
<!-- height 25%% -->
<ImageView
android:id="@+id/img_shop"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/e" />
Its hard to it in Xml, you can do it by code doing some calculations. 在Xml中很难,你可以通过代码做一些计算。 How to do:
怎么做:
Sample Code: (in activity) 示例代码:(在活动中)
final View parentView= findViewById(R.id.mainContent);
final ImageView effect_camera= (ImageView)findViewById(R.id.img_effect+camera);
effect_camera.post(new Runnable(){
@Override
public void run(){
int height=parentView.getHeight();
int width=parentView.getWidth();
RelativeLayout.LayoutParams lp= (RelativeLayout.LayoutParams)effect_camera.getLayoutParams();
int percentHeight=height*.25;
int percentWidth= width*1;
lp.height=percentHeight;
lp.width=percentWidth;
effect_camera.setLayoutParams(lp);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.