java - Android:围绕中心旋转图像?

标签 java android animation rotation

我想让图像围绕其中心旋转,但我的方法不起作用,它显然是围绕不同的轴心点旋转的。我是 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;
    }
}

最佳答案

试试这个:

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

关于java - Android:围绕中心旋转图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31650062/

相关文章:

android - Geocoder 不适用于某些 Android 手机

java - Glassfish 4.1 + Hibernate 5.2 连接

java - 使用 java2word api 的 jre 最低版本是多少

android - 将布局中的文本居中,用另一个 View 限制左侧大小

android - SQLite 语法错误,但仅在 Samsung Galaxy Tab 上

c++ - WM_TIMER 动画闪烁

html - 将悬停时的阴影效果添加到 DIV 框

javascript - 如何让 JavaScript 动画在所有系统的所有浏览器上以相同的速度播放?

java - Android Multidex 运行时异常

java - Servlet 在本地 Windows 上工作,但在 Linux 上不工作