完成开页方向,单点触控
This commit is contained in:
1 parent
74dcbae3dd
commit
cde6904e3f
16 files changed
+508
-186
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -6,8 +6,8 @@
|
||||
android:id="@+id/gl_root_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
<View android:id="@+id/gl_root_cover"
|
||||
<!-- View android:id="@+id/gl_root_cover"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#ff888888"/>
|
||||
android:background="#ff888888"/-->
|
||||
</RelativeLayout>
|
||||
@@ -126,6 +126,7 @@
|
||||
<string name="landscape">横屏</string>
|
||||
|
||||
<string name="preference_page_scaling">页面缩放</string>
|
||||
<string name="preference_start_position">开页位置</string>
|
||||
|
||||
<string name="preference_settings_title">设置</string>
|
||||
<string name="preference_category_cache">缓存</string>
|
||||
@@ -188,6 +189,13 @@
|
||||
<string name="not_started">未启动</string>
|
||||
<string name="waiting">等待中</string>
|
||||
|
||||
<!-- GalleryView -->
|
||||
<string name="pre_page">上一页</string>
|
||||
<string name="next_page">下一页</string>
|
||||
<string name="zoom_in">放大</string>
|
||||
<string name="zoom_out">缩小</string>
|
||||
<string name="menu">菜单</string>
|
||||
|
||||
<!-- Util -->
|
||||
<string name="last_page">最后一页!</string>
|
||||
<string name="unfinished">未完成的功能</string>
|
||||
@@ -219,6 +227,13 @@
|
||||
<string name="fit_to_width">匹配宽度</string>
|
||||
<string name="fit_to_height">匹配长度</string>
|
||||
<string name="fit_to_screen">匹配屏幕</string>
|
||||
<string name="fixed_scale">固定缩放</string>
|
||||
|
||||
<string name="top_left">左上角</string>
|
||||
<string name="top_right">右上角</string>
|
||||
<string name="bottom_left">左下角</string>
|
||||
<string name="bottom_right">右下角</string>
|
||||
<string name="center">中心</string>
|
||||
|
||||
<string name="add_to_favourite">收藏</string>
|
||||
<string name="remove">移除</string>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<item>@string/fit_to_width</item>
|
||||
<item>@string/fit_to_height</item>
|
||||
<item>@string/fit_to_screen</item>
|
||||
<item>@string/fixed_scale</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="page_scaling_entry_values" translatable="false">
|
||||
@@ -27,6 +28,23 @@
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="start_position_entries">
|
||||
<item>@string/top_left</item>
|
||||
<item>@string/top_right</item>
|
||||
<item>@string/bottom_left</item>
|
||||
<item>@string/bottom_right</item>
|
||||
<item>@string/center</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="start_position_values" translatable="false">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="list_item_long_click">
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
<string name="portrait">Portrait</string>
|
||||
<string name="landscape">Landscape</string>
|
||||
<string name="preference_page_scaling">Page scaling</string>
|
||||
<string name="preference_start_position">Start position</string>
|
||||
|
||||
<string name="preference_settings_title">Settings</string>
|
||||
<string name="preference_category_cache">Cache</string>
|
||||
@@ -195,6 +196,13 @@
|
||||
<string name="not_started">Not started</string>
|
||||
<string name="waiting">Waiting</string>
|
||||
|
||||
<!-- GalleryView -->
|
||||
<string name="pre_page">Previous page</string>
|
||||
<string name="next_page">Next page</string>
|
||||
<string name="zoom_in">Zoom in</string>
|
||||
<string name="zoom_out">Zoom out</string>
|
||||
<string name="menu">Menu</string>
|
||||
|
||||
<!-- Util -->
|
||||
<string name="last_page">Last page !</string>
|
||||
<string name="sadpanda" translatable="false">Sad Panda</string>
|
||||
@@ -227,6 +235,13 @@
|
||||
<string name="fit_to_width">Fit to width</string>
|
||||
<string name="fit_to_height">Fit to height</string>
|
||||
<string name="fit_to_screen">Fit to screen</string>
|
||||
<string name="fixed_scale">Fixed</string>
|
||||
|
||||
<string name="top_left">Top left</string>
|
||||
<string name="top_right">Top right</string>
|
||||
<string name="bottom_left">Bottom left</string>
|
||||
<string name="bottom_right">Bottom right</string>
|
||||
<string name="center">Center</string>
|
||||
|
||||
<string name="add_to_favourite">Add to favourite</string>
|
||||
<string name="remove">Remove</string>
|
||||
|
||||
@@ -17,6 +17,14 @@
|
||||
android:key="preference_page_scaling"
|
||||
android:summary="%s"
|
||||
android:title="@string/preference_page_scaling" />
|
||||
|
||||
<com.hippo.ehviewer.preference.AutoListPreference
|
||||
android:defaultValue="1"
|
||||
android:entries="@array/start_position_entries"
|
||||
android:entryValues="@array/start_position_values"
|
||||
android:key="preference_start_position"
|
||||
android:summary="%s"
|
||||
android:title="@string/preference_page_scaling" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/preference_category_cache" >
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class MangaDownloadActivity extends Activity {
|
||||
private static final String TAG = "MangaDownloadActivity";
|
||||
@@ -48,8 +49,6 @@ public class MangaDownloadActivity extends Activity {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -75,70 +74,20 @@ public class MangaDownloadActivity extends Activity {
|
||||
|
||||
ImageSet is = new ImageSet(new File(Config.getDownloadPath(), title), size, 0, size, null);
|
||||
GalleryView isv = new GalleryView(getApplicationContext(), is, 0);
|
||||
|
||||
glrv.setContentPane(isv);
|
||||
|
||||
/*
|
||||
if (title == null) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
dir = new File(Config.getDownloadPath(), title);
|
||||
String[] files;
|
||||
if (!dir.isDirectory() || (files = dir.list()) == null) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
fileList = new ArrayList<String>();
|
||||
for (String fileName : files) {
|
||||
String name = Util.getName(fileName);
|
||||
if (Util.isNumber(name))
|
||||
fileList.add(fileName);
|
||||
}
|
||||
// TODO do it you self
|
||||
Collections.sort(fileList);
|
||||
|
||||
pageView = new MangaViewPager(this);
|
||||
pageView.setBackgroundColor(color.darker_gray);
|
||||
// For fullscreen
|
||||
if (Build.VERSION.SDK_INT >= 19) {
|
||||
pageView.setSystemUiVisibility(
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||
| View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
|
||||
}
|
||||
pageView.setAdapter(new PagerAdapter() {
|
||||
isv.setOnEdgeListener(new GalleryView.OnEdgeListener() {
|
||||
@Override
|
||||
public void destroyItem(ViewGroup container, int position, Object view) {
|
||||
container.removeView((View)view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object instantiateItem(ViewGroup container, int position) {
|
||||
final String imageName = fileList.get(position);
|
||||
MangaImage oiv = new MangaImage(MangaDownloadActivity.this);
|
||||
Bitmap bitmap = BitmapFactory.decodeFile(dir.toString() + "/" + imageName);
|
||||
oiv.setImageBitmap(bitmap);
|
||||
//oiv.enableZoomMove(true);
|
||||
container.addView(oiv);
|
||||
return oiv;
|
||||
public void onLastPageEdge() {
|
||||
Toast.makeText(MangaDownloadActivity.this, getString(R.string.last_page), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return fileList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(View arg0, Object arg1) {
|
||||
return arg0==arg1;
|
||||
public void onFirstPageEdge() {
|
||||
Toast.makeText(MangaDownloadActivity.this, getString(R.string.first_page), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
setContentView(pageView);*/
|
||||
glrv.setContentPane(isv);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -32,7 +32,6 @@ import android.support.v4.util.LruCache;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
//TODO Add thanks
|
||||
public class SettingsActivity extends PreferenceActivity {
|
||||
@SuppressWarnings("unused")
|
||||
private static String TAG = "Settings";
|
||||
@@ -41,17 +40,18 @@ public class SettingsActivity extends PreferenceActivity {
|
||||
|
||||
public LruCache<String, Bitmap> memoryCache;
|
||||
|
||||
private String CP_CACHE = "preference_cp_cache";
|
||||
private String CLEAR_CP_CACHE = "preference_clear_cp_cache";
|
||||
private String PAGE_CACHE = "preference_page_cache";
|
||||
private String CLEAR_PAGE_CACHE = "preference_clear_page_cache";
|
||||
private String PAGE_SCALING = "preference_page_scaling";
|
||||
private String AUTHOR = "preference_author";
|
||||
private String SCREEN_ORI = "preference_screen_ori";
|
||||
private String CHANGELOG = "preference_changelog";
|
||||
private String THANKS = "preference_thanks";
|
||||
private String UPDATE = "preference_update";
|
||||
private String RAN = "preference_remove_all_noification";
|
||||
private static final String CP_CACHE = "preference_cp_cache";
|
||||
private static final String CLEAR_CP_CACHE = "preference_clear_cp_cache";
|
||||
private static final String PAGE_CACHE = "preference_page_cache";
|
||||
//private static final String START_POSITION = "preference_start_position";
|
||||
private static final String CLEAR_PAGE_CACHE = "preference_clear_page_cache";
|
||||
private static final String PAGE_SCALING = "preference_page_scaling";
|
||||
private static final String AUTHOR = "preference_author";
|
||||
private static final String SCREEN_ORI = "preference_screen_ori";
|
||||
private static final String CHANGELOG = "preference_changelog";
|
||||
private static final String THANKS = "preference_thanks";
|
||||
private static final String UPDATE = "preference_update";
|
||||
private static final String RAN = "preference_remove_all_noification";
|
||||
|
||||
private EditTextPreference cpCachePre;
|
||||
private Preference clearCpCachePre;
|
||||
@@ -227,7 +227,20 @@ public class SettingsActivity extends PreferenceActivity {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
final AutoListPreference start_position =
|
||||
(AutoListPreference)screen.findPreference(START_POSITION);
|
||||
start_position.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference,
|
||||
Object newValue) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
// Connect me !
|
||||
authorPer = screen.findPreference(AUTHOR);
|
||||
authorPer.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
|
||||
@@ -8,18 +8,21 @@ import android.graphics.RectF;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.ehviewer.gallery.data.ImageSet;
|
||||
import com.hippo.ehviewer.gallery.glrenderer.BitmapTexture;
|
||||
import com.hippo.ehviewer.gallery.glrenderer.GLCanvas;
|
||||
import com.hippo.ehviewer.gallery.glrenderer.GLPaint;
|
||||
import com.hippo.ehviewer.gallery.glrenderer.StringTexture;
|
||||
import com.hippo.ehviewer.gallery.ui.GLView;
|
||||
import com.hippo.ehviewer.gallery.ui.GestureRecognizer;
|
||||
import com.hippo.ehviewer.gallery.ui.GestureRecognizer.Listener;
|
||||
import com.hippo.ehviewer.gallery.util.GalleryUtils;
|
||||
import com.hippo.ehviewer.util.Config;
|
||||
import com.hippo.ehviewer.util.TimeRunner;
|
||||
import com.hippo.ehviewer.util.Ui;
|
||||
|
||||
public class GalleryView extends GLView {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static final String TAG = "ImagesView";
|
||||
|
||||
public static final int INVALID_ID = -1;
|
||||
@@ -28,18 +31,21 @@ public class GalleryView extends GLView {
|
||||
private static final int STATE_LAST = 0x2;
|
||||
private static final int STATE_NONE = 0x0;
|
||||
|
||||
// scale mode
|
||||
private static final int ORGIN = 0x0;
|
||||
private static final int FIT_WIDTH = 0x1;
|
||||
private static final int FIT_HEIGHT = 0x2;
|
||||
private static final int FIT = 0x3;
|
||||
private static final int FIXED = 0x4;
|
||||
|
||||
// start position mode
|
||||
private static final int TOP_LEFT = 0x0;
|
||||
private static final int TOP_RIGHT = 0x1;
|
||||
private static final int BOTTOM_LEFT = 0x2;
|
||||
private static final int BOTTOM_RIGHT = 0x3;
|
||||
private static final int CENTER = 0x4;
|
||||
|
||||
// Scroll state
|
||||
private static final int SCROLL_NONE = 0x0;
|
||||
private static final int SCROLL_LEFT = 0x1;
|
||||
private static final int SCROLL_RIGHT = 0x2;
|
||||
@@ -51,8 +57,27 @@ public class GalleryView extends GLView {
|
||||
private static final int NEXT_TARGET_INDEX = 2;
|
||||
private static final int TARGET_INDEX_SIZE = 3;
|
||||
|
||||
// Area
|
||||
private static final float[] LEFT_AREA_SCALE = {0, 0, 2/7.0f, 1};
|
||||
private static final float[] TOP_AREA_SCALE = {2/7.0f, 0, 5/7.0f, 3/8.0f};
|
||||
private static final float[] RIGHT_AREA_SCALE = {5/7.0f, 0, 1, 1};
|
||||
private static final float[] BOTTOM_AREA_SCALE = {2/7.0f, 5/8.0f, 5/7.0f, 1};
|
||||
private static final float[] CENTER_AREA_SCALE = {2/7.0f, 3/8.0f, 5/7.0f, 5/8.0f};
|
||||
|
||||
private static final float MILLSEC_PER_DIX = 0.2f;
|
||||
private static final float CHANGE_PAGE_PROPORTION = 0.1f;
|
||||
private static final float CHANGE_PAGE_PROPORTION = 0.05f;
|
||||
|
||||
// TODO in dip
|
||||
private static final float CHANGE_PAGE_OFFSET = 20;
|
||||
|
||||
// TODO 根据界面的大小调整缩放界限
|
||||
private static final float SCALE_MIN = 1/4.0f;
|
||||
private static final float SCALE_MAX = 4;
|
||||
|
||||
private static final float LINE_WIDTH = Ui.dp2pix(3);
|
||||
private static final int LINE_COLOR = -1; // White
|
||||
private static final int TAP_AREA_TEXT_COLOR = -1; // White
|
||||
private static final int TAP_AREA_TEXT_SIZE = Ui.dp2pix(24);
|
||||
|
||||
private final GestureRecognizer mGestureRecognizer;
|
||||
private Context mContext;
|
||||
@@ -61,8 +86,8 @@ public class GalleryView extends GLView {
|
||||
private int mState;
|
||||
// scale and scroll only can choose one
|
||||
private boolean isScale = false;
|
||||
private int scaleMode = FIXED;
|
||||
private int startMode = TOP_LEFT;
|
||||
private int scaleMode;
|
||||
private int startMode;
|
||||
private int mScrollState = SCROLL_NONE;
|
||||
private int scrollXOffset = 0;
|
||||
private int scrollYOffset = 0;
|
||||
@@ -76,17 +101,38 @@ public class GalleryView extends GLView {
|
||||
private int mWidth = -1;
|
||||
private int mHeight = -1;
|
||||
|
||||
private static final float SCALE_MIN = 1/4.0f;
|
||||
private static final float SCALE_MAX = 4;
|
||||
|
||||
// TODO 开页方向
|
||||
|
||||
// at most keep three item
|
||||
private ShowItem[] showItems;
|
||||
private int mCurIndex;
|
||||
private int mSize;
|
||||
private boolean mInit = false;
|
||||
|
||||
private int[] leftArea;
|
||||
private int[] topArea;
|
||||
private int[] rightArea;
|
||||
private int[] bottomArea;
|
||||
private int[] centerArea;
|
||||
|
||||
private Text leftText;
|
||||
private Text topText;
|
||||
private Text rightText;
|
||||
private Text bottomText;
|
||||
private Text centerText;
|
||||
|
||||
private boolean mShowTapArea = false;
|
||||
private boolean mShowTapAreaTurn = false;
|
||||
|
||||
public OnEdgeListener mOnEdgeListener;
|
||||
|
||||
public interface OnEdgeListener {
|
||||
public void onFirstPageEdge();
|
||||
public void onLastPageEdge();
|
||||
}
|
||||
|
||||
public void setOnEdgeListener(OnEdgeListener l) {
|
||||
mOnEdgeListener = l;
|
||||
}
|
||||
|
||||
public GalleryView(Context context, ImageSet imageSet, int startIndex) {
|
||||
mContext = context;
|
||||
mImageSet = imageSet;
|
||||
@@ -103,6 +149,10 @@ public class GalleryView extends GLView {
|
||||
setBackgroundColor(GalleryUtils.intColorToFloatARGBArray(Color.GRAY));
|
||||
|
||||
showItems = new ShowItem[TARGET_INDEX_SIZE];
|
||||
|
||||
// Init config
|
||||
scaleMode = Config.getPageScalingMode();
|
||||
startMode = Config.getStartPosition();
|
||||
}
|
||||
|
||||
private void setState() {
|
||||
@@ -113,6 +163,33 @@ public class GalleryView extends GLView {
|
||||
mState |= STATE_LAST;
|
||||
}
|
||||
|
||||
private void drawTapArea(GLCanvas canvas) {
|
||||
drawRect(canvas, leftArea);
|
||||
drawRect(canvas, topArea);
|
||||
drawRect(canvas, rightArea);
|
||||
drawRect(canvas, bottomArea);
|
||||
drawRect(canvas, centerArea);
|
||||
leftText.draw(canvas);
|
||||
topText.draw(canvas);
|
||||
rightText.draw(canvas);
|
||||
bottomText.draw(canvas);
|
||||
centerText.draw(canvas);
|
||||
}
|
||||
|
||||
private void drawRect(GLCanvas canvas, int[] rect) {
|
||||
|
||||
int left = rect[0];
|
||||
int top = rect[1];
|
||||
int right = rect[2];
|
||||
int bottom = rect[3];
|
||||
|
||||
GLPaint paint = new GLPaint(LINE_COLOR, LINE_WIDTH);
|
||||
canvas.drawLine(left, top, right, top, paint);
|
||||
canvas.drawLine(left, bottom, right, bottom, paint);
|
||||
canvas.drawLine(left, top, left, bottom, paint);
|
||||
canvas.drawLine(right, top, right, bottom, paint);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void render(GLCanvas canvas) {
|
||||
super.render(canvas);
|
||||
@@ -146,10 +223,16 @@ public class GalleryView extends GLView {
|
||||
item.draw(canvas, scrollXOffset, scrollYOffset);
|
||||
break;
|
||||
}
|
||||
|
||||
// Add mInit to make show the leftArea or other is not null
|
||||
if (mShowTapArea && mInit)
|
||||
drawTapArea(canvas);
|
||||
}
|
||||
|
||||
private void resetSizePosition() {
|
||||
|
||||
resetSizePosition(PRE_TARGET_INDEX);
|
||||
resetSizePosition(CUR_TARGET_INDEX);
|
||||
resetSizePosition(NEXT_TARGET_INDEX);
|
||||
}
|
||||
|
||||
private void resetSizePosition(int targeIndex) {
|
||||
@@ -188,7 +271,7 @@ public class GalleryView extends GLView {
|
||||
if (showItem instanceof Image) {
|
||||
Image image = (Image)showItem;
|
||||
|
||||
// TODO 检查缩放尺寸是否超界
|
||||
// Set scale
|
||||
int showWidth = 0;
|
||||
int showHeight = 0;
|
||||
Rect rect = image.mRect;
|
||||
@@ -230,9 +313,20 @@ public class GalleryView extends GLView {
|
||||
break;
|
||||
}
|
||||
|
||||
// adjust scale
|
||||
if (image.imageScale < SCALE_MIN) {
|
||||
image.imageScale = SCALE_MIN;
|
||||
showWidth = (int)(image.width * SCALE_MIN);
|
||||
showHeight = (int)(image.height * SCALE_MIN);
|
||||
} else if (image.imageScale > SCALE_MAX) {
|
||||
image.imageScale = SCALE_MAX;
|
||||
showWidth = (int)(image.width * SCALE_MAX);
|
||||
showHeight = (int)(image.height * SCALE_MAX);
|
||||
}
|
||||
|
||||
// set start position
|
||||
int xOffset;
|
||||
int yOffset;
|
||||
|
||||
switch (startMode) {
|
||||
case TOP_LEFT:
|
||||
xOffset = 0;
|
||||
@@ -262,12 +356,75 @@ public class GalleryView extends GLView {
|
||||
rect.top = yOffset;
|
||||
rect.bottom = rect.top + showHeight;
|
||||
|
||||
// adjust position
|
||||
adjustPosition(image);
|
||||
}
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
private void setCenterInArea(int[] area, ShowItem showItem) {
|
||||
int xOffset = ((area[2] - area[0]) - showItem.width)/2;
|
||||
int yOffset = ((area[3] - area[1]) - showItem.height)/2;
|
||||
|
||||
Rect rect = showItem.mRect;
|
||||
|
||||
rect.left = area[0] + xOffset;
|
||||
rect.right = rect.left + showItem.width;
|
||||
rect.top = area[1] + yOffset;
|
||||
rect.bottom = rect.top + showItem.height;
|
||||
}
|
||||
|
||||
private void setTapArea() {
|
||||
leftArea = new int[]{
|
||||
(int)(LEFT_AREA_SCALE[0] * mWidth),
|
||||
(int)(LEFT_AREA_SCALE[1] * mHeight),
|
||||
(int)(LEFT_AREA_SCALE[2] * mWidth),
|
||||
(int)(LEFT_AREA_SCALE[3] * mHeight)};
|
||||
topArea = new int[]{
|
||||
(int)(TOP_AREA_SCALE[0] * mWidth),
|
||||
(int)(TOP_AREA_SCALE[1] * mHeight),
|
||||
(int)(TOP_AREA_SCALE[2] * mWidth),
|
||||
(int)(TOP_AREA_SCALE[3] * mHeight)};
|
||||
rightArea = new int[]{
|
||||
(int)(RIGHT_AREA_SCALE[0] * mWidth),
|
||||
(int)(RIGHT_AREA_SCALE[1] * mHeight),
|
||||
(int)(RIGHT_AREA_SCALE[2] * mWidth),
|
||||
(int)(RIGHT_AREA_SCALE[3] * mHeight)};
|
||||
bottomArea = new int[]{
|
||||
(int)(BOTTOM_AREA_SCALE[0] * mWidth),
|
||||
(int)(BOTTOM_AREA_SCALE[1] * mHeight),
|
||||
(int)(BOTTOM_AREA_SCALE[2] * mWidth),
|
||||
(int)(BOTTOM_AREA_SCALE[3] * mHeight)};
|
||||
centerArea = new int[]{
|
||||
(int)(CENTER_AREA_SCALE[0] * mWidth),
|
||||
(int)(CENTER_AREA_SCALE[1] * mHeight),
|
||||
(int)(CENTER_AREA_SCALE[2] * mWidth),
|
||||
(int)(CENTER_AREA_SCALE[3] * mHeight)};
|
||||
|
||||
if (leftText == null)
|
||||
leftText = new Text(mContext.getString(R.string.pre_page),
|
||||
TAP_AREA_TEXT_SIZE, TAP_AREA_TEXT_COLOR);
|
||||
if (topText == null)
|
||||
topText = new Text(mContext.getString(R.string.zoom_in),
|
||||
TAP_AREA_TEXT_SIZE, TAP_AREA_TEXT_COLOR);
|
||||
if (rightText == null)
|
||||
rightText = new Text(mContext.getString(R.string.next_page),
|
||||
TAP_AREA_TEXT_SIZE, TAP_AREA_TEXT_COLOR);
|
||||
if (bottomText == null)
|
||||
bottomText = new Text(mContext.getString(R.string.zoom_out),
|
||||
TAP_AREA_TEXT_SIZE, TAP_AREA_TEXT_COLOR);
|
||||
if (centerText == null)
|
||||
centerText = new Text(mContext.getString(R.string.menu),
|
||||
TAP_AREA_TEXT_SIZE, TAP_AREA_TEXT_COLOR);
|
||||
|
||||
setCenterInArea(leftArea, leftText);
|
||||
setCenterInArea(topArea, topText);
|
||||
setCenterInArea(rightArea, rightText);
|
||||
setCenterInArea(bottomArea, bottomText);
|
||||
setCenterInArea(centerArea, centerText);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLayout(
|
||||
boolean changeSize, int left, int top, int right, int bottom) {
|
||||
@@ -284,6 +441,7 @@ public class GalleryView extends GLView {
|
||||
} else {
|
||||
resetSizePosition();
|
||||
}
|
||||
setTapArea();
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@@ -315,6 +473,22 @@ public class GalleryView extends GLView {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If cur page is first page return true
|
||||
* @return
|
||||
*/
|
||||
private boolean isFirstPage() {
|
||||
return (mState & STATE_FIRST) != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* If cur page is last page return true
|
||||
* @return
|
||||
*/
|
||||
private boolean isLastPage() {
|
||||
return (mState & STATE_LAST) != 0;
|
||||
}
|
||||
|
||||
class DecodeImageListener implements ImageSet.OnDecodeOverListener {
|
||||
@Override
|
||||
public void onDecodeOver(Bitmap bmp, int index) {
|
||||
@@ -338,6 +512,115 @@ public class GalleryView extends GLView {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mode
|
||||
* true zoom in, false zoom out
|
||||
* @return
|
||||
*/
|
||||
private boolean zoom(boolean mode) {
|
||||
ShowItem curShowItem;
|
||||
curShowItem = showItems[CUR_TARGET_INDEX];
|
||||
|
||||
if (curShowItem == null || !(curShowItem instanceof Image))
|
||||
return false;
|
||||
Image image = (Image)curShowItem;
|
||||
float newScale;
|
||||
if (mode) {
|
||||
newScale = image.imageScale * 1.1f;
|
||||
if (newScale == SCALE_MAX)
|
||||
return false;
|
||||
if (newScale > SCALE_MAX)
|
||||
newScale = SCALE_MAX;
|
||||
}
|
||||
else {
|
||||
newScale = image.imageScale * 0.9f;
|
||||
if (newScale == SCALE_MIN)
|
||||
return false;
|
||||
if (newScale < SCALE_MIN)
|
||||
newScale = SCALE_MIN;
|
||||
}
|
||||
image.imageScale = newScale;
|
||||
mScale = newScale;
|
||||
|
||||
Rect rect = image.mRect;
|
||||
int width = (int)(image.width * newScale);
|
||||
int height = (int)(image.height * newScale);
|
||||
int xOffset = (width - rect.width())/2;
|
||||
int yOffset = (height - rect.height())/2;
|
||||
|
||||
rect.set(rect.left - xOffset, rect.top - yOffset, rect.right + xOffset, rect.bottom + yOffset);
|
||||
|
||||
invalidate();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* You'd better resetSizePosition(PRE_TARGET_INDEX) before
|
||||
* @return
|
||||
*/
|
||||
private boolean goToPrePage() {
|
||||
if (isFirstPage())
|
||||
return false;
|
||||
|
||||
ShowItem showItem;
|
||||
showItem = showItems[NEXT_TARGET_INDEX];
|
||||
if (showItem != null)
|
||||
showItem.recycle();
|
||||
showItems[NEXT_TARGET_INDEX] = showItems[CUR_TARGET_INDEX];
|
||||
showItems[CUR_TARGET_INDEX] = showItems[PRE_TARGET_INDEX];
|
||||
showItems[PRE_TARGET_INDEX] = null;
|
||||
|
||||
// adjust rect
|
||||
showItem = showItems[NEXT_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(mWidth, 0);
|
||||
}
|
||||
showItem = showItems[CUR_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(mWidth, 0);
|
||||
}
|
||||
|
||||
mCurIndex--;
|
||||
setState();
|
||||
loadImage(mCurIndex-1, PRE_TARGET_INDEX);
|
||||
|
||||
invalidate();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* You'd better resetSizePosition(NEXT_TARGET_INDEX) before
|
||||
* @return
|
||||
*/
|
||||
private boolean goToNextPage() {
|
||||
if (isLastPage())
|
||||
return false;
|
||||
|
||||
ShowItem showItem;
|
||||
showItem = showItems[PRE_TARGET_INDEX];
|
||||
if (showItem != null)
|
||||
showItem.recycle();
|
||||
showItems[PRE_TARGET_INDEX] = showItems[CUR_TARGET_INDEX];
|
||||
showItems[CUR_TARGET_INDEX] = showItems[NEXT_TARGET_INDEX];
|
||||
showItems[NEXT_TARGET_INDEX] = null;
|
||||
// adjust rect
|
||||
showItem = showItems[PRE_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(-mWidth, 0);
|
||||
}
|
||||
showItem = showItems[CUR_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(-mWidth, 0);
|
||||
}
|
||||
|
||||
mCurIndex++;
|
||||
setState();
|
||||
loadImage(mCurIndex+1, NEXT_TARGET_INDEX);
|
||||
|
||||
invalidate();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onTouch(MotionEvent event) {
|
||||
@@ -354,30 +637,8 @@ public class GalleryView extends GLView {
|
||||
@Override
|
||||
public void onEnd() {
|
||||
scrollXOffset = 0;
|
||||
|
||||
ShowItem showItem;
|
||||
showItem = showItems[NEXT_TARGET_INDEX];
|
||||
if (showItem != null)
|
||||
showItem.recycle();
|
||||
showItems[NEXT_TARGET_INDEX] = showItems[CUR_TARGET_INDEX];
|
||||
showItems[CUR_TARGET_INDEX] = showItems[PRE_TARGET_INDEX];
|
||||
showItems[PRE_TARGET_INDEX] = null;
|
||||
// adjust rect
|
||||
showItem = showItems[NEXT_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(mWidth, 0);
|
||||
}
|
||||
showItem = showItems[CUR_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(mWidth, 0);
|
||||
}
|
||||
|
||||
mCurIndex--;
|
||||
setState();
|
||||
loadImage(mCurIndex-1, PRE_TARGET_INDEX);
|
||||
|
||||
goToPrePage();
|
||||
mScrollState = SCROLL_NONE;
|
||||
invalidate();
|
||||
}
|
||||
});
|
||||
mToNextTimeRunner.setOnTimerListener(new TimeRunner.OnTimeListener() {
|
||||
@@ -386,30 +647,8 @@ public class GalleryView extends GLView {
|
||||
@Override
|
||||
public void onEnd() {
|
||||
scrollXOffset = 0;
|
||||
|
||||
ShowItem showItem;
|
||||
showItem = showItems[PRE_TARGET_INDEX];
|
||||
if (showItem != null)
|
||||
showItem.recycle();
|
||||
showItems[PRE_TARGET_INDEX] = showItems[CUR_TARGET_INDEX];
|
||||
showItems[CUR_TARGET_INDEX] = showItems[NEXT_TARGET_INDEX];
|
||||
showItems[NEXT_TARGET_INDEX] = null;
|
||||
// adjust rect
|
||||
showItem = showItems[PRE_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(-mWidth, 0);
|
||||
}
|
||||
showItem = showItems[CUR_TARGET_INDEX];
|
||||
if (showItem != null) {
|
||||
showItem.mRect.offset(-mWidth, 0);
|
||||
}
|
||||
|
||||
mCurIndex++;
|
||||
setState();
|
||||
loadImage(mCurIndex+1, NEXT_TARGET_INDEX);
|
||||
|
||||
goToNextPage();
|
||||
mScrollState = SCROLL_NONE;
|
||||
invalidate();
|
||||
}
|
||||
});
|
||||
mReturnTimeRunner.setOnTimerListener(new TimeRunner.OnTimeListener() {
|
||||
@@ -424,15 +663,48 @@ public class GalleryView extends GLView {
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isInArea(int[] area, int x, int y) {
|
||||
if (area.length != 4)
|
||||
throw new IllegalArgumentException(
|
||||
"area's length should be 4, but it's length is " + area.length);
|
||||
if (x >= area[0] && x < area[2] && y >= area[1] && y < area[3])
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSingleTapUp(float x, float y) {
|
||||
// TODO Auto-generated method stub
|
||||
if (mScrollState != SCROLL_NONE || mShowTapAreaTurn)
|
||||
return false;
|
||||
|
||||
if (isInArea(leftArea, (int)x, (int)y)) {
|
||||
// TODO goto bottom first the to pre page
|
||||
resetSizePosition(PRE_TARGET_INDEX);
|
||||
if (!goToPrePage() && mOnEdgeListener != null)
|
||||
mOnEdgeListener.onFirstPageEdge();
|
||||
} else if (isInArea(topArea, (int)x, (int)y)) {
|
||||
zoom(true);
|
||||
} else if (isInArea(rightArea, (int)x, (int)y)) {
|
||||
// TODO goto bottom first the to pre page
|
||||
resetSizePosition(NEXT_TARGET_INDEX);
|
||||
if (!goToNextPage() && mOnEdgeListener != null)
|
||||
mOnEdgeListener.onLastPageEdge();
|
||||
} else if (isInArea(bottomArea, (int)x, (int)y)) {
|
||||
zoom(false);
|
||||
} else if (isInArea(centerArea, (int)x, (int)y)) {
|
||||
mShowTapArea = true;
|
||||
mShowTapAreaTurn = true;
|
||||
invalidate();
|
||||
} else {
|
||||
// Can't catch tap
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onDoubleTap(float x, float y) {
|
||||
// TODO Auto-generated method stub
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -442,6 +714,9 @@ public class GalleryView extends GLView {
|
||||
return this.onScroll(dx, dy, totalX, totalY);
|
||||
}
|
||||
|
||||
/**
|
||||
* dx 和 totalX 符号相反,为啥
|
||||
*/
|
||||
@Override
|
||||
public boolean onScroll(float dx, float dy, float totalX, float totalY) {
|
||||
|
||||
@@ -455,7 +730,6 @@ public class GalleryView extends GLView {
|
||||
case SCROLL_ANIME_RIGHT:
|
||||
return false;
|
||||
case SCROLL_NONE:
|
||||
//Image image = null;
|
||||
boolean changePage = false;
|
||||
Rect rect = null;
|
||||
|
||||
@@ -464,30 +738,41 @@ public class GalleryView extends GLView {
|
||||
changePage = true;
|
||||
else{
|
||||
rect = curShowItem.mRect;
|
||||
if ((dx < 0 && rect.left >= 0) || (dx > 0 && rect.right <= mWidth))
|
||||
if ( Math.abs(totalX/totalY) > 1 && ((totalX > CHANGE_PAGE_OFFSET && dx < 0 && rect.left >= 0)
|
||||
|| (totalX < -CHANGE_PAGE_OFFSET && dx > 0 && rect.right <= mWidth)))
|
||||
changePage = true;
|
||||
}
|
||||
|
||||
if (changePage) { // If change page
|
||||
if (dx < 0) { // Go to left
|
||||
if ((mState & STATE_FIRST) == 0) { // Not first page
|
||||
if (!isFirstPage()) { // Not first page
|
||||
scrollXOffset = 0;
|
||||
mScrollState = SCROLL_LEFT;
|
||||
resetSizePosition(PRE_TARGET_INDEX);
|
||||
} else if (mShowEdegTip) { // First page
|
||||
mShowEdegTip = false;
|
||||
Log.d(TAG, "First page");
|
||||
} else {
|
||||
changePage = false;
|
||||
if (mShowEdegTip) { // First page
|
||||
mShowEdegTip = false;
|
||||
if (mOnEdgeListener != null)
|
||||
mOnEdgeListener.onFirstPageEdge();
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // Go to righ
|
||||
if ((mState & STATE_LAST) == 0) { // Not last page
|
||||
if (!isLastPage()) { // Not last page
|
||||
scrollXOffset = 0;
|
||||
mScrollState = SCROLL_RIGHT;
|
||||
resetSizePosition(NEXT_TARGET_INDEX);
|
||||
} else if (mShowEdegTip) { // last page
|
||||
mShowEdegTip = false;
|
||||
Log.d(TAG, "Last page");
|
||||
} else {
|
||||
changePage = false;
|
||||
if (mShowEdegTip) { // last page
|
||||
mShowEdegTip = false;
|
||||
if (mOnEdgeListener != null)
|
||||
mOnEdgeListener.onLastPageEdge();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { // Move cur image
|
||||
}
|
||||
if (!changePage){ // Move cur image
|
||||
int actDx = -(int)dx;
|
||||
int actDy = -(int)dy;
|
||||
if (rect.width() <= mWidth)
|
||||
@@ -502,13 +787,19 @@ public class GalleryView extends GLView {
|
||||
break;
|
||||
|
||||
case SCROLL_LEFT:
|
||||
scrollXOffset -= dx;
|
||||
if (scrollXOffset <= 0) {
|
||||
scrollXOffset = 0;
|
||||
mScrollState = SCROLL_NONE;
|
||||
}
|
||||
break;
|
||||
|
||||
case SCROLL_RIGHT:
|
||||
scrollXOffset -= dx;
|
||||
// adjust
|
||||
if ((mState & STATE_FIRST) != 0 && scrollXOffset > 0)
|
||||
scrollXOffset = 0;
|
||||
if ((mState & STATE_LAST) != 0 && scrollXOffset < 0)
|
||||
if (scrollXOffset >= 0) {
|
||||
scrollXOffset = 0;
|
||||
mScrollState = SCROLL_NONE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -560,7 +851,6 @@ public class GalleryView extends GLView {
|
||||
@Override
|
||||
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
|
||||
float velocityY) {
|
||||
// TODO Auto-generated method stub
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -617,13 +907,15 @@ public class GalleryView extends GLView {
|
||||
|
||||
@Override
|
||||
public void onDown(float x, float y) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
mShowTapArea = false;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUp() {
|
||||
mShowEdegTip = true;
|
||||
if (!mShowTapArea)
|
||||
mShowTapAreaTurn = false;
|
||||
}
|
||||
|
||||
// *** TimeRunner *** //
|
||||
@@ -652,13 +944,19 @@ public class GalleryView extends GLView {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* If side is shorter then parent's, make it in parent's center
|
||||
* If side is longer then parent's, make sure it fill parent
|
||||
*
|
||||
* @param showItem
|
||||
*/
|
||||
public void adjustPosition(ShowItem showItem) {
|
||||
Rect rect = showItem.mRect;
|
||||
int showWidth = rect.width();
|
||||
int showHeight = rect.height();
|
||||
|
||||
int sumXOffset;
|
||||
int sumYOffset = 0; // TODO
|
||||
int sumYOffset = 0;
|
||||
|
||||
int targetIndex = getTargetIndex(showItem);
|
||||
switch (targetIndex) {
|
||||
@@ -841,10 +1139,18 @@ public class GalleryView extends GLView {
|
||||
load(str);
|
||||
}
|
||||
|
||||
public Text(String str, float size, int color) {
|
||||
load(str, size, color);
|
||||
}
|
||||
|
||||
public void load(String str) {
|
||||
load(str, 100, -1);
|
||||
}
|
||||
|
||||
public void load(String str, float size, int color) {
|
||||
if (mTexture != null)
|
||||
recycle();
|
||||
mTexture = StringTexture.newInstance(str, 100, 0xffffffff);
|
||||
mTexture = StringTexture.newInstance(str, size, color);
|
||||
width = mTexture.getWidth();
|
||||
height = mTexture.getHeight();
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ public class ImageSet {
|
||||
File file = new File(mFolder, fileName);
|
||||
try {
|
||||
BitmapFactory.Options opt = new BitmapFactory.Options();
|
||||
opt.inPreferredConfig = Bitmap.Config.RGB_565;
|
||||
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
bmp = BitmapFactory.decodeStream(fis, null, opt);
|
||||
fis.close();
|
||||
|
||||
@@ -21,7 +21,14 @@ import junit.framework.Assert;
|
||||
public class GLPaint {
|
||||
private float mLineWidth = 1f;
|
||||
private int mColor = 0;
|
||||
|
||||
|
||||
public GLPaint() {}
|
||||
|
||||
public GLPaint(int color, float width) {
|
||||
setColor(color);
|
||||
setLineWidth(width);
|
||||
}
|
||||
|
||||
public void setColor(int color) {
|
||||
mColor = color;
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ public class GLRootView extends GLSurfaceView
|
||||
|
||||
private long mLastDrawFinishTime;
|
||||
private boolean mInDownState = false;
|
||||
private boolean mFirstDraw = true;
|
||||
//private boolean mFirstDraw = true;
|
||||
|
||||
public GLRootView(Context context) {
|
||||
this(context, null);
|
||||
@@ -349,7 +349,7 @@ public class GLRootView extends GLSurfaceView
|
||||
} finally {
|
||||
mRenderLock.unlock();
|
||||
}
|
||||
|
||||
/*
|
||||
// We put a black cover View in front of the SurfaceView and hide it
|
||||
// after the first draw. This prevents the SurfaceView being transparent
|
||||
// before the first draw.
|
||||
@@ -363,7 +363,7 @@ public class GLRootView extends GLSurfaceView
|
||||
cover.setVisibility(GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
private void onDrawFrameLocked(GL10 gl) {
|
||||
|
||||
@@ -25,6 +25,8 @@ public class Config {
|
||||
private static final String AUTO_PAGE_CACHE = "preference_auto_page_cache";
|
||||
private static final String PAGE_SCALING = "preference_page_scaling";
|
||||
private static final String PAGE_SCALING_DEFAULT = "3";
|
||||
private static final String START_POSITION = "preference_start_position";
|
||||
private static final String START_POSITION_DEFAULT = "1";
|
||||
private static final String SCREEN_ORI = "preference_screen_ori";
|
||||
private static final String SCREEN_ORI_DEFAULT = "0";
|
||||
private static final String DOWNLOAD_PATH = "preference_download_path";
|
||||
@@ -34,8 +36,6 @@ public class Config {
|
||||
|
||||
private static Context mContext;
|
||||
private static SharedPreferences mConfigPre;
|
||||
|
||||
private static final String EMSG = "Please init Config first.";
|
||||
|
||||
/**
|
||||
* Init Config
|
||||
@@ -68,9 +68,6 @@ public class Config {
|
||||
* @return True if allowed
|
||||
*/
|
||||
public static boolean isAllowed() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
}
|
||||
return mConfigPre.getBoolean(KEY_ALLOWED, false);
|
||||
}
|
||||
|
||||
@@ -78,9 +75,6 @@ public class Config {
|
||||
* Allowed the appliation to launch
|
||||
*/
|
||||
public static void allowed() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
}
|
||||
mConfigPre.edit().putBoolean(KEY_ALLOWED, true).apply();
|
||||
}
|
||||
|
||||
@@ -90,9 +84,6 @@ public class Config {
|
||||
* @return
|
||||
*/
|
||||
public static boolean isFirstTime() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return mConfigPre.getBoolean(KEY_FIRST, true);
|
||||
}
|
||||
|
||||
@@ -144,9 +135,6 @@ public class Config {
|
||||
* @return
|
||||
*/
|
||||
public static int getPageDiskCacheSize() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
}
|
||||
try {
|
||||
return Integer.parseInt(mConfigPre.getString(PAGE_CACHE, PAGE_CACHE_DEFAULT));
|
||||
} catch (Exception e) {
|
||||
@@ -156,16 +144,10 @@ public class Config {
|
||||
}
|
||||
|
||||
public static boolean isAutoPageCache() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
}
|
||||
return mConfigPre.getBoolean(AUTO_PAGE_CACHE, false);
|
||||
}
|
||||
|
||||
public static int getPageScalingMode() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
}
|
||||
int pageScalingMode = 3;
|
||||
try {
|
||||
pageScalingMode = Integer.parseInt(mConfigPre.getString(
|
||||
@@ -177,10 +159,19 @@ public class Config {
|
||||
return pageScalingMode;
|
||||
}
|
||||
|
||||
public static int getScreenOriMode() {
|
||||
if (!mInit) {
|
||||
throw new IllegalStateException(EMSG);
|
||||
public static int getStartPosition() {
|
||||
int startPosition = 1;
|
||||
try {
|
||||
startPosition = Integer.parseInt(mConfigPre.getString(
|
||||
START_POSITION, START_POSITION_DEFAULT));
|
||||
} catch (Exception e) {
|
||||
mConfigPre.edit().putString(START_POSITION, START_POSITION_DEFAULT)
|
||||
.apply();
|
||||
}
|
||||
return startPosition;
|
||||
}
|
||||
|
||||
public static int getScreenOriMode() {
|
||||
int screenOriMode = 0;
|
||||
try {
|
||||
screenOriMode = Integer.parseInt(mConfigPre.getString(
|
||||
|
||||
@@ -6,7 +6,7 @@ import android.os.Message;
|
||||
|
||||
public abstract class TimeRunner {
|
||||
|
||||
private static final int INTERVAL = 1;
|
||||
private static final int INTERVAL = 5;
|
||||
|
||||
private static final int RUNNING = 0;
|
||||
private static final int START = 1;
|
||||
|
||||
Reference in new issue
Block a user