/**
* Copyright 2014 Djia
* All right reserved.
*
* Created on 2014-8-11
*/
package com.wind.gifassistant.ui;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import com.wind.gifassistant.R;
import com.wind.gifassistant.utils.AppUtils;
import com.wind.gifassistant.views.gifview.GifView;
import com.wind.gifassistant.views.gifview.GifView.GifShowGravity;
import java.io.File;
/**
* @author Djia
* @time 2014-8-11下午3:05:32
* @instuction show gif
*/
public class GifShowActivity extends Activity {
private GifView mGifView = null;
private FloatingActionsMenu mFloatingMenu;
private float mTouchPosX;
private float mTouchPosY;
private float mMaxDistance;
private static float DEFAULT_MOVE_FLAG = 10;
private String mGifPath;
/**
*
*/
public GifShowActivity() {
// TODO Auto-generated constructor stub
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gif_show_activity);
Intent intent = getIntent();
mGifPath = intent.getStringExtra(AppUtils.KEY_PATH);
mGifView = (GifView) findViewById(R.id.gif_show);
mGifView.setGifShowGravity(GifShowGravity.CENTER_FULL);
mGifView.showGifImage(mGifPath);
mFloatingMenu = (FloatingActionsMenu) findViewById(R.id.multiple_actions);
FloatingActionButton actionShareButton = (FloatingActionButton) findViewById(R.id.action_share);
actionShareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
File file = new File(mGifPath);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, getTitle()));
mFloatingMenu.collapse();
}
});
FloatingActionButton actionDeleteButton = (FloatingActionButton) findViewById(R.id.action_delete);
actionDeleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File file = new File(mGifPath);
if (!file.exists()) {
return;
}
file.delete();
mFloatingMenu.collapse();
finish();
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mTouchPosX = event.getX();
mTouchPosY = event.getY();
mMaxDistance = 0;
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
float x = event.getX();
float y = event.getY();
float disX = x > mTouchPosX ? (x - mTouchPosX) : (mTouchPosX - x);
float disY = y > mTouchPosY ? (y - mTouchPosY) : (mTouchPosY - y);
float dis = disX > disY ? disX : disY;
if (dis > mMaxDistance) {
mMaxDistance = dis;
}
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (mMaxDistance < DEFAULT_MOVE_FLAG) {
if (mFloatingMenu != null) {
mFloatingMenu.toggle();
}
}
}
return super.onTouchEvent(event);
}
}