如何将较小的Android视图集中在另一个视图上?

时间:2014-05-22 18:26:16

标签: android android-layout

我有一个绘制图形的自定义视图。我想要做的是让视图最初显示为其大小的一半(状态a),然后在诸如按钮单击之类的事件上,我希望视图扩展到其大小的两倍(状态b)。我在这里遇到了一些问题:

1)第一种是将视图定位在状态a中,使得其相对于状态b水平和垂直居中。 pw_future在屏幕顶部对齐,与屏幕一样宽。如何让pw_spinner在这个视图上居中?

2)现在,我在XML文件中指定pw_spinner的宽度/高度。我不喜欢这个,因为屏幕尺寸可能因硬件而异。我真的希望它的大小是pw_future的1/2。我怎么能这样做?

我正在使用RelativeLayout(并且不确定它是最佳选择)。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ProgressWheel="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="#000000"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:id="@+id/relativeLayout" >

<com.todddavis.components.ProgressWheel
    android:id="@+id/pw_future"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"
    ProgressWheel:barColor="#FCEC5A"
    ProgressWheel:barLength="60dp"
    ProgressWheel:barWidth="10dp"
    ProgressWheel:delayMillis="75"
    ProgressWheel:rimColor="#343434"
    ProgressWheel:rimWidth="10dp"
    ProgressWheel:spinSpeed="30dp"
    ProgressWheel:text="state b"
    ProgressWheel:textColor="#FCEC5A"
    ProgressWheel:textSize="60sp" 
    />

<com.todddavis.components.ProgressWheel
    android:id="@+id/pw_spinner"
    android:layout_width="165dp"
    android:layout_height="165dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    ProgressWheel:barColor="#FCEC5A"
    ProgressWheel:barLength="60dp"
    ProgressWheel:barWidth="5dp"
    ProgressWheel:delayMillis="75"
    ProgressWheel:rimColor="#343434"
    ProgressWheel:rimWidth="5dp"
    ProgressWheel:spinSpeed="30dp"
    ProgressWheel:textColor="#FCEC5A"
    ProgressWheel:textSize="60sp" />

1 个答案:

答案 0 :(得分:0)

要对齐视图,您只需使用完全相同的布局参数。看起来你正在使用android:layout_centerVertical="true"用于pw_spinner,删除它。另外,将android:layout_alignParentTop="true"添加到pw_spinner。