0

是否可以通过使用其他元素值的百分比来设置诸如高度、宽度和边距之类的值。例如,让一个元素的宽度是另一个元素的一半。

当这是以编程方式或在 axml 代码中时,我不介意。

目前,我一直在尝试像这样以编程方式进行操作:

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);

    var metrics = Resources.DisplayMetrics;
    var widthInDp = ConvertPixelsToDp(metrics.WidthPixels);
    var heightInDp = ConvertPixelsToDp(metrics.HeightPixels);

    SetContentView (Resource.Layout.Main);

                //Set title width as 98% of total width
    ImageView title_img = FindViewById<ImageView> (Resource.Id.apptitle);
    LinearLayout baseparent = FindViewById<LinearLayout> (Resource.Id.baselayout);
    title_img.LayoutParameters.Width = (baseparent.Width / 100) * 98 ;
               //Set welcome width as half of title width
    ImageView welcome_img = FindViewById<ImageView> (Resource.Id.welcome);
    welcome_img.LayoutParameters.Width = title_img.Width/2;
}


private int ConvertPixelsToDp(float pixelValue)
{
    var dp = (int) ((pixelValue)/Resources.DisplayMetrics.Density);
    return dp;
}
4

1 回答 1

0

一种方法是android:layout_weight在线性布局中使用参数。例如,要让一个元素是第二个元素的两倍大,您可以这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:background="#FF0000"
        android:layout_height="fill_parent" android:layout_width="fill_parent"
        android:layout_weight="2" />
    <LinearLayout android:background="#00FF00"
        android:layout_height="fill_parent" android:layout_width="fill_parent"
        android:layout_weight="1" />
</LinearLayout>

可以在此处的文章中找到更多关于此的信息。

于 2013-06-20T18:48:29.197 回答