0
我有繪製圖形的自定義視圖。我想要做的是將視圖初始顯示爲其大小的一半(狀態a),然後在按下按鈕之類的事件時,我希望視圖展開爲其大小的兩倍(狀態b)。我在這裏遇到了幾個問題:如何將較小的Android視圖置於另一視圖中?
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" />
是的,pw_spinner應該有android:layout_alignParentTop =「true」,而不是android:layout_centerVertical =「true」。這個問題是pw_spinner小於pw_future,因此不是垂直居中在pw_future上。 – user1529455
啊,我明白你的意思了,所以它不應該與父母的頂端對齊。在這種情況下,我會建議把兩個視圖放在它們自己的RelativeLayout中(我不能說這是你做了什麼,佈局是不完整的)。完成之後,然後在兩個視圖上設置centerHorizontal和centerVertical將會起作用。 – ashishduh