簡體   English   中英

在Android中使用動畫旋轉圓形進度條后如何居中?

[英]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度。

資料來源: Android文件:RotateAnimation(float,float,float,float)

嘗試這個

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM