Android studioで画像の回転効果を実現
この画像の反転効果は支付宝五福反転の効果に似ているか、ゲーム中の反転効果に効果図を添付します.
最初のステップは2つの表と裏のレイアウトが簡単ですImageViewとTextviewで構成されています.私はその中の1つの例を持っています.
第2部ホームページレイアウト
アニメーション
第四部統合コード実現効果
あなたの役に立つことを望みます
プロジェクトのアドレス:http://download.csdn.net/detail/liufatao/9750898
最初のステップは2つの表と裏のレイアウトが簡単ですImageViewとTextviewで構成されています.私はその中の1つの例を持っています.
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_fl_card_front"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:padding="16dp"
android:src="@mipmap/two"/>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="20sp"
android:text=" "
android:textColor="@android:color/white"/>
第2部ホームページレイアウト
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
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:onClick="fipCard"
tools:context="com.example.administrator.cardflip.MainActivity">
layout="@layout/cell_card_front">
layout="@layout/cell_card_back">
第3部書き込み属性アニメーションアニメーション
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="3000"
android:propertyName="rotationY"
android:valueFrom="0"
android:valueTo="180dp">
android:duration="0"
android:propertyName="alpha"
android:startOffset="1500"
android:valueFrom="1.0"
android:valueTo="0.0">
アニメーションインxml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="0"
android:propertyName="alpha"
android:valueFrom="1.0"
android:valueTo="0.0">
android:duration="3000"
android:propertyName="rotationY"
android:valueFrom="-180"
android:valueTo="0">
android:duration="0"
android:propertyName="alpha"
android:startOffset="1500"
android:valueFrom="0.0"
android:valueTo="1.0">
第四部統合コード実現効果
public class MainActivity extends AppCompatActivity {
AnimatorSet mRightOutSet, mLeftOutSet;
boolean mIsShowBack;
@BindView(R.id.main_fl_card_back)
RelativeLayout mainFlCardBack;
@BindView(R.id.main_fl_card_front)
RelativeLayout mainFlCardFront;
@BindView(R.id.main_fl_container)
RelativeLayout mainFlContainer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setAnimators();//
setCameraDistance();//
}
//
private void setAnimators() {
mRightOutSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_out);
mLeftOutSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_in);
//
mRightOutSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
mainFlContainer.setClickable(false);
}
});
mLeftOutSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
mainFlContainer.setClickable(true);
}
});
}
// ,
private void setCameraDistance() {
int distance = 16000;
float scale = getResources().getDisplayMetrics().density * distance;
mainFlCardFront.setCameraDistance(scale);
mainFlCardBack.setCameraDistance(scale);
}
//
public void fipCard(View view) {
//
if (!mIsShowBack) {
mRightOutSet.setTarget(mainFlCardBack);
mLeftOutSet.setTarget(mainFlCardFront);
mRightOutSet.start();
mLeftOutSet.start();
mIsShowBack = true;
} else {
mRightOutSet.setTarget(mainFlCardFront);
mLeftOutSet.setTarget(mainFlCardBack);
mRightOutSet.start();
mLeftOutSet.start();
mIsShowBack = false;
}
}
}
あなたの役に立つことを望みます
プロジェクトのアドレス:http://download.csdn.net/detail/liufatao/9750898