Android:如何围绕中心旋转图像?

3
我希望图片能够围绕其中心旋转,但我的方法没有起作用,它显然是围绕不同的支点旋转的。我是Android开发新手,所以你可能会在我的代码中发现一些严重的错误。此外,如果我旋转屏幕,图像将被旋转回其初始旋转状态。 以下是我的文件:
fragment_main.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivityFragment"
        android:background="@drawable/texture">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Πάγωσε η κόλαση..."
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_0"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:paddingTop="25dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Μπρρρ!"
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_1"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="50dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Κρύο"
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_2"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="75dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Έτσι κ'έτσι..."
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_3"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="100dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Καλό"
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_4"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="125dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Πολύ καλό!"
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_5"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="150dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Κάνεις κοιλιακούς!"
            android:textColor="@color/label_color"
            android:textSize="20dp"
            android:id="@+id/label_6"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="175dp" />

        <ImageView
            android:src="@drawable/thermostat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/thermostat"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:paddingTop="@dimen/margin" />

        <ImageView
            android:src="@drawable/thermostat_slider"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/thermostat_slider"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:paddingTop="@dimen/margin" />

        <ImageView
            android:src="@drawable/inside_thing"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/inside_thing"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:paddingTop="@dimen/margin" />

        <ImageView
            android:src="@drawable/inside_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/inside_text"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:paddingTop="@dimen/margin" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Τι κάνω?"
            android:textColor="@color/label_color"
            android:textStyle="bold"
            android:id="@+id/title"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/title_margin"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text"
            android:text="@string/help_text"
            android:textColor="@color/label_color"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="750dp" />

        </RelativeLayout>
</ScrollView>

MainActivityFragment.java

package antoni4040.barufakis;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;


/**
 * A placeholder fragment containing a simple view.
 */
public class MainActivityFragment extends Fragment {

    public MainActivityFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        final ImageView thermostat = (ImageView) rootView.findViewById(R.id.thermostat);
        final ImageView slider = (ImageView) rootView.findViewById(R.id.thermostat_slider);
        final TextView label_0 = (TextView) rootView.findViewById(R.id.label_0);
        label_0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RotateAnimation animation = new RotateAnimation(0, 90,
                        (slider.getLeft() + slider.getRight())/2,
                        (slider.getTop() + slider.getBottom())/2);
                animation.setDuration(1000);
                animation.setFillAfter(true);
                slider.startAnimation(animation);
                label_0.setTextColor(Color.parseColor("#00BFFF"));
            }
        });

        return rootView;
    }
}
1个回答

4
尝试这个:

试一下:

 Animation a = new RotateAnimation(0.0f, 90.0f,
                    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                    0.5f);

那一开始实际上没起作用,但是后来我把pivotY改成了0.58f,现在就好了!不太清楚为什么,但无论如何,谢谢! - undefined
还有一件事:当屏幕旋转时,如何保持旋转状态? - undefined
我认为当屏幕旋转时,它会保持旋转。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接