package cn.com.mythos.android;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import cn.com.mythos.android.Contents.Contents;
import cn.com.mythos.android.Contents.Utils;
import cn.com.mythos.touhoucartoonreader.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.gesture.GestureOverlayView;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends BaseActivity implements OnTouchListener,
OnGestureListener {
private RelativeLayout layout1;
private RelativeLayout layout2;
private RelativeLayout layout3;
private RelativeLayout layout4;
private Bitmap bmap = null;
private ImageButton openSDcard;
private ImageButton page;
private ImageButton bookmark;
private ImageButton logout;
private ImageButton setup;
private ImageButton zoomSmall;
private ImageButton zoomBig;
private int disWidth;
private int disHeight;
private LinkedList<String> imageList;
private Map<String, String> imagePosition;
private String[] imageArray;
private int imageIndex;
private String index;
private GestureDetector gestureScanner;
private int picIndex;
private Handler handler = new Handler();
private Handler handler2 = new Handler();
private TextView imageName;
private TextView pagePosition;
private ImageView imageView;
private ImageButton lastPage;
private ImageButton nextPage;
private final float FLING_MIN_DISTANCE = 250;
private final float FLING_MIN_VELOCITY = 400;
private EditText BookmarkName;
private String bookMarks;
private static boolean isStop3 = false;
private static boolean isStop5 = false;
private static boolean isShow = false;
private RelativeLayout relativeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
layout1 = (RelativeLayout) findViewById(R.id.layout1);
layout2 = (RelativeLayout) findViewById(R.id.layout2);
layout3 = (RelativeLayout) findViewById(R.id.layout3);
layout4 = (RelativeLayout) findViewById(R.id.layout4);
openSDcard = (ImageButton) findViewById(R.id.openSDcard);
openSDcard.setOnClickListener(openSDcardButton);
page = (ImageButton) findViewById(R.id.page);
page.setOnClickListener(pageButton);
bookmark = (ImageButton) findViewById(R.id.bookmark);
bookmark.setOnClickListener(bookmarkButton);
setup = (ImageButton) findViewById(R.id.setup);
setup.setOnClickListener(setupButton);
logout = (ImageButton) findViewById(R.id.logout);
logout.setOnClickListener(logoutButton);
zoomSmall = (ImageButton) findViewById(R.id.zoomSmall);
zoomSmall.setOnClickListener(zoomSmallButton);
zoomBig = (ImageButton) findViewById(R.id.zoomBig);
zoomBig.setOnClickListener(zoomBigButton);
pagePosition = (TextView) findViewById(R.id.pagePosition);
imageName = (TextView) findViewById(R.id.imageName);
imageView = (ImageView) findViewById(R.id.imageView);
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout_main);
getDisplayMetrics();
if (loadImages() != null && loadImages().size() > 0) {
imageList = loadImages();
imageArray = imageList.toArray(new String[imageList.size()]);
} else {
layout2.setVisibility(View.VISIBLE);
layout4.setVisibility(View.VISIBLE);
showMsg(R.string.noPic);
}
relativeLayout.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
});
doGestureEvent();
initLoadImages();
lastPage = (ImageButton) findViewById(R.id.lastPage);
lastPage.setOnClickListener(lastPageButton);
nextPage = (ImageButton) findViewById(R.id.nextPage);
nextPage.setOnClickListener(nextPageButton);
}
//重写onPause的方法,保存当前阅读的漫画信息
@Override
protected void onPause() {
super.onPause();
try{
String picPath = Utils.getImagePath(imagePosition, imageList);
if(picPath != null) {
Utils.saveFile(Contents.SHOWHISTORY, picPath, false);
}
}catch (Exception e) {
}
}
//缩小按钮的监听
public View.OnClickListener zoomSmallButton = new View.OnClickListener() {
public void onClick(View v) {
if(imageList != null) {
String picPath = Utils.getImagePath(imagePosition, imageList);
Bitmap bitmap = Utils.imageZoomSmall(picPath, disWidth, disHeight);
if(bitmap != null) {
Utils.ScaleAngle = 0;
setImageView(bitmap);
bitmap = null;
}
}
}
};
//放大按钮的监听
public View.OnClickListener zoomBigButton = new View.OnClickListener() {
public void onClick(View v) {
if(imageList != null) {
String picPath = Utils.getImagePath(imagePosition, imageList);
Bitmap bitmap = Utils.imageZoomBig(picPath, disWidth, disHeight);
if(bitmap != null) {
Utils.ScaleAngle = 0;
setImageView(bitmap);
bitmap = null;
}
}
}
};
//setImageView方法的重载,用于显示bitmap
public void setImageView(Bitmap bitmap) {
imageView.setImageBitmap(bitmap);
}
//重写了触屏响应事件
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
// 获取手机分辨率,根据大小设置高和宽
public void getDisplayMetrics() {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
disWidth = dm.widthPixels;
disHeight = dm.heightPixels;
}
// 加载指定文件夹下的所有图片
public LinkedList<String> loadImages() {
LinkedList<String> list = new LinkedList<String>();
String filePath = getPicPath();
if (filePath != null && !"".equals(filePath)) {
File picFile = new File(filePath);
if (!picFile.exists()) {
return list;
} else {
File[] files = Utils.getPicOrder(picFile.getParent());
if (files != null && files.length > 0) {
for (File file : files) {
if (Utils.getFileExt(file.getPath())) {
list.add(file.getAbsolutePath());
}
}
}
}
}
return list;
}
// 设置手势事件
public void doGestureEvent() {
gestureScanner = new GestureDetector(this);
gestureScanner
.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
public boolean onSingleTapConfirmed(MotionEvent e) {
if (imageList != null && imageList.size() > 0) {
// 5秒后自动隐藏,后面实现
if(!isShow) {
layout2.setVisibility(View.VISIBLE);
layout3.setVisibility(View.VISIBLE);
layout4.setVisibility(View.VISIBLE);
isShow = true;
handler = new Handler();
handler.removeCallbacks(hideMenu1);
handler.postDelayed(hideMenu1, 5000);
}
}
return false;
}
// 隐藏菜单,第六阶段实现
private Runnable hideMenu1 = new Runnable() {
public void run() {
layout2.setVisibility(View.GONE);
layout3.setVisibility
小程序源码 新闻阅读 动漫阅读器源码.rar
版权申诉
155 浏览量
2023-03-29
20:00:56
上传
评论
收藏 7.96MB RAR 举报
荣华富贵8
- 粉丝: 150
- 资源: 7649
最新资源
- 数据分析实战3-豆瓣top250数据分析和可视化
- tomcat安装及配置教程.md
- tomcat安装及配置教程.md
- 51单片机贴片心形灯原理图PCB程序 亚克力外壳.dwg资料
- 户型为单家独院式图纸编号D068-三层-20.60&13.40米-施工图.dwg
- 农村小别墅图纸编号D067-三层-10.00&11.50米- 施工图.dwg
- 三层独栋别墅图纸编号D066-三层-12.00&12.00米- 施工图.dwg
- 农村小别墅图纸编号D065-三层-14.40&18.55米-施工图.dwg
- 基于YOLOv8检测高铁吊弦缺陷实现的系统的Python源码+文档说明+训练源文件+模型.zip
- 三层农村小别墅图纸编号D064-三层-13.80&22.20米-施工图.dwg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈