我有一个绘制图形的自定义视图。我想要做的是让视图最初显示为其大小的一半(状态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" />
答案 0 :(得分:0)
要对齐视图,您只需使用完全相同的布局参数。看起来你正在使用android:layout_centerVertical="true"
用于pw_spinner,删除它。另外,将android:layout_alignParentTop="true"
添加到pw_spinner。