/*
* Copyright 2013 Peng fei Pan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.xiaopan.android.examples.activity.graphics;
import me.xiaopan.android.examples.MyBaseActivity;
import me.xiaopan.android.examples.R;
import me.xiaopan.easy.android.util.DrawabLevelController;
import me.xiaopan.easy.android.util.DrawabLevelController.Listener;
import me.xiaopan.easy.android.util.DrawabLevelController.RepeatMode;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Rotate Drawable测试
* @author xiaopan
*
*/
public class RotateDrawableActivity extends MyBaseActivity {
private Drawable orderDrawable;//顺序旋转图片
private Drawable reverseDrawable;//倒序旋转图片
private Drawable mirrorDrawable;//镜像旋转图片
private TextView orderText;//顺序旋转图片
private TextView reverseText;//倒序旋转图片
private TextView mirrorText;//镜像旋转图片
private Button rotaryControlButton;//旋转控制按钮
private Button resetButton;//旋转控制按钮
private DrawabLevelController orderDrawableController;
private DrawabLevelController reverseDrawableController;
private DrawabLevelController mirrorDrawableController;
@Override
public void onInitLayout(Bundle savedInstanceState) {
setContentView(R.layout.activity_rotate_drawable);
orderDrawable = ((ImageView) findViewById(R.id.rotateDrawable_image_order)).getDrawable();
reverseDrawable = ((ImageView) findViewById(R.id.rotateDrawable_image_reverse)).getDrawable();
mirrorDrawable = ((ImageView) findViewById(R.id.rotateDrawable_image_mirror)).getDrawable();
orderText = (TextView) findViewById(R.id.rotateDrawable_text_order);
reverseText = (TextView) findViewById(R.id.rotateDrawable_text_reverse);
mirrorText = (TextView) findViewById(R.id.rotateDrawable_text_mirror);
rotaryControlButton = (Button) findViewById(R.id.rotateDrawable_button_rotaryControl);
resetButton = (Button) findViewById(R.id.rotateDrawable_button_reset);
}
@Override
public void onInitListener(Bundle savedInstanceState) {
rotaryControlButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(orderDrawableController.isRunning()){
orderDrawableController.pause();
reverseDrawableController.pause();
mirrorDrawableController.pause();
}else{
orderDrawableController.start();
reverseDrawableController.start();
mirrorDrawableController.start();
}
}
});
resetButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
orderDrawableController.reset();
reverseDrawableController.reset();
mirrorDrawableController.reset();
}
});
orderDrawableController = new DrawabLevelController(this, orderDrawable);
orderDrawableController.setListener(new Listener() {
@Override
public void onStart() {
rotaryControlButton.setText(R.string.base_pause);
}
@Override
public void onReset() {
toastS("重置成功!");
}
@Override
public void onPause() {
rotaryControlButton.setText(R.string.base_start);
}
@Override
public void onCompletedACircle(int totalRepeatCount, int hasRepeatCount) {
orderText.setText(hasRepeatCount+"/"+totalRepeatCount);
}
@Override
public void onStop() {
}
});
reverseDrawableController = new DrawabLevelController(this, reverseDrawable);
reverseDrawableController.setListener(new Listener() {
@Override
public void onStart() {
}
@Override
public void onReset() {
}
@Override
public void onPause() {
}
@Override
public void onCompletedACircle(int totalRepeatCount, int hasRepeatCount) {
reverseText.setText(hasRepeatCount+"/"+totalRepeatCount);
Log.i("测试", "完成次数="+hasRepeatCount);
}
@Override
public void onStop() {
}
});
mirrorDrawableController = new DrawabLevelController(this, mirrorDrawable);
mirrorDrawableController.setListener(new Listener() {
@Override
public void onStart() {
}
@Override
public void onReset() {
}
@Override
public void onPause() {
}
@Override
public void onCompletedACircle(int totalRepeatCount, int hasRepeatCount) {
mirrorText.setText(hasRepeatCount+"/"+totalRepeatCount);
}
@Override
public void onStop() {
}
});
}
@Override
public void onInitData(Bundle savedInstanceState) {
orderDrawableController.setRepeatMode(RepeatMode.ORDER);
orderDrawableController.setDelayed(1);
orderDrawableController.setIncremental(100);
// orderDrawableController.setRepeatCount(9);
orderDrawableController.start();
reverseDrawableController.setRepeatMode(RepeatMode.REVERSE);
reverseDrawableController.setDelayed(1);
reverseDrawableController.setIncremental(100);
// reverseDrawableController.setRepeatCount(9);
reverseDrawableController.start();
mirrorDrawableController.setRepeatMode(RepeatMode.MIRROR);
mirrorDrawableController.setDelayed(1);
mirrorDrawableController.setIncremental(100);
// mirrorDrawableController.setRepeatCount(9);
mirrorDrawableController.start();
}
}