[英]How to center a circular progress bar after rotating it with an animation in Android?
在旋轉動畫之前,它很棒,但是我不喜歡圓圈在哪里開始,我得到了這個:
http://s3.postimg.org/ptnap4h8h/cnocorrido.png
應用旋轉動畫后,我得到以下信息:
我有一個圓形的進度條,必須旋轉它才能使其從底部開始並在底部結束
圓形進度欄:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/progress">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="7.0"
android:useLevel="true">
<gradient
android:startColor="#fb0000"
android:endColor="#00FF00"
android:centerColor="#fbf400"
android:type="sweep" />
</shape>
</item>
</layer-list>
圓圈中間有一個文本視圖(answerCountdown),顯示剩余的秒數。 很好。
layout.xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<ProgressBar
android:id="@+id/barTimer"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="120dp"
android:layout_height="131dp"
android:indeterminate="false"
android:indeterminateOnly="false"
android:max="100"
android:progressDrawable="@drawable/circular_progress_bar"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/gameCountDown"
android:layout_alignParentStart="false"
android:layout_alignParentEnd="false"
android:layout_alignWithParentIfMissing="false"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/answerCountdown"
android:layout_gravity="center_horizontal"
android:layout_marginTop="47dp"
android:layout_below="@+id/gameCountDown"
android:layout_alignParentStart="false"
android:layout_alignParentEnd="false"
android:layout_alignWithParentIfMissing="false"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_centerHorizontal="true" />
</RelativeLayout>
但是,當我應用旋轉動畫后,它沒有居中,它會根據您旋轉它的角度向左或向右移動,倒數計時器上的代碼
Animation an = new RotateAnimation(0.0f, 90.0f, 250f, 273f);
an.setFillAfter(true);
barTimer.startAnimation(an);
textView已經很好地居中了,有什么方法可以在“旋轉后居中”而不必在布局上輸入邊距值嗎?....我現在只想用一個布局文件來解決…… ..
我相信您的構造函數已關閉:
Animation an = new RotateAnimation(0.0f, 90.0f, 250f, 273f);
第3和第4個參數表示旋轉樞軸點,應看起來更像以下內容
Animation an = new RotateAnimation(0.0f, 90.0f, .5f, .5f);
上面的意思是:將X和Y軸心點從圖像的50%的位置從0旋轉到90度。
嘗試這個
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@android:color/holo_blue_bright">
<ProgressBar
android:id="@+id/barTimer"
android:progressDrawable="@drawable/circular_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="120dp"
android:layout_height="131dp"
android:layout_gravity="center"
android:indeterminate="false"
android:indeterminateOnly="false"
android:max="100"
/>
<TextView
android:id="@+id/answerCountdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="jfi"
android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.