Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 4d8654e
Showing
14 changed files
with
753 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
.metadata | ||
tmp/** | ||
.DS_Store | ||
*.tmp | ||
*.bak | ||
tmp/**/* | ||
*.swp | ||
*~.nib | ||
Thumbs.db | ||
Desktop.ini | ||
*~ | ||
*.apk | ||
bin | ||
gen | ||
local.properties | ||
*.jar | ||
.classpath |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>comicshelf</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.jdt.core.javabuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>com.android.ide.eclipse.adt.ApkBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature> | ||
<nature>org.eclipse.jdt.core.javanature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.kaulahcintaku.comicshelf" | ||
android:versionCode="1" | ||
android:versionName="1.0"> | ||
<supports-screens android:anyDensity="true" android:largeScreens="true" android:resizeable="true" android:normalScreens="true" android:smallScreens="true"></supports-screens> | ||
|
||
|
||
<application android:icon="@drawable/icon" android:label="@string/app_name"> | ||
<activity android:name=".SeriesActivity" | ||
android:label="@string/app_name"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
|
||
</application> | ||
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Android comic library for perfect viewer https://market.android.com/details?id=com.rookiestudio.perfectviewer&hl=en | ||
|
||
Using coverflow widget: http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html | ||
|
||
Icons by: http://www.customicondesign.com/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# This file is automatically generated by Android Tools. | ||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | ||
# | ||
# This file must be checked in Version Control Systems. | ||
# | ||
# To customize properties used by the Ant build system use, | ||
# "build.properties", and override values to adapt the script to your | ||
# project structure. | ||
|
||
# Project target. | ||
target=android-8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
-optimizationpasses 5 | ||
-dontusemixedcaseclassnames | ||
-dontskipnonpubliclibraryclasses | ||
-dontpreverify | ||
-verbose | ||
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* | ||
|
||
-keep public class * extends android.app.Activity | ||
-keep public class * extends android.app.Application | ||
-keep public class * extends android.app.Service | ||
-keep public class * extends android.content.BroadcastReceiver | ||
-keep public class * extends android.content.ContentProvider | ||
-keep public class * extends android.app.backup.BackupAgentHelper | ||
-keep public class * extends android.preference.Preference | ||
-keep public class com.android.vending.licensing.ILicensingService | ||
|
||
-keepclasseswithmembernames class * { | ||
native <methods>; | ||
} | ||
|
||
-keepclasseswithmembernames class * { | ||
public <init>(android.content.Context, android.util.AttributeSet); | ||
} | ||
|
||
-keepclasseswithmembernames class * { | ||
public <init>(android.content.Context, android.util.AttributeSet, int); | ||
} | ||
|
||
-keepclassmembers enum * { | ||
public static **[] values(); | ||
public static ** valueOf(java.lang.String); | ||
} | ||
|
||
-keep class * implements android.os.Parcelable { | ||
public static final android.os.Parcelable$Creator *; | ||
} |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:orientation="vertical" android:layout_width="fill_parent" | ||
android:layout_height="fill_parent"> | ||
<com.kaulahcintaku.comicshelf.CoverFlow android:id="@+id/coverflow" | ||
android:layout_width="fill_parent" android:layout_height="wrap_content" | ||
android:layout_weight="1" /> | ||
|
||
<LinearLayout android:layout_width="fill_parent" | ||
android:layout_height="wrap_content"> | ||
<LinearLayout android:layout_width="fill_parent" | ||
android:layout_height="match_parent" android:padding="6dip"> | ||
<Button android:id="@+id/open" | ||
android:layout_width="100dip" | ||
android:layout_height="100dip" | ||
android:layout_marginRight="6dip" | ||
android:text="Open" | ||
android:layout_gravity="center_vertical" /> | ||
<LinearLayout android:id="@+id/content" | ||
android:orientation="vertical" android:layout_width="fill_parent" | ||
android:layout_height="wrap_content"> | ||
<TextView android:id="@+id/title" android:layout_width="fill_parent" | ||
android:layout_height="wrap_content" android:gravity="right|center_vertical" | ||
android:text="Title" android:textStyle="bold" android:textSize="18dip" | ||
android:paddingBottom="6dip" /> | ||
<TextView android:id="@+id/detail" android:layout_width="match_parent" | ||
android:layout_height="wrap_content" android:gravity="right|center_vertical" | ||
android:paddingBottom="6dip" android:text="Detail" /> | ||
</LinearLayout> | ||
</LinearLayout> | ||
</LinearLayout> | ||
</LinearLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<resources> | ||
<string name="hello">Hello World, SeriesActivity!</string> | ||
<string name="app_name">Comic Shelf</string> | ||
</resources> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,209 @@ | ||
/* | ||
* Copyright (C) 2010 Neil Davies | ||
* | ||
* 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. | ||
* | ||
* This code is base on the Android Gallery widget and was Created | ||
* by Neil Davies neild001 'at' gmail dot com to be a Coverflow widget | ||
* | ||
* @author Neil Davies | ||
*/ | ||
package com.kaulahcintaku.comicshelf; | ||
|
||
import android.content.Context; | ||
import android.graphics.Camera; | ||
import android.graphics.Matrix; | ||
import android.util.AttributeSet; | ||
import android.view.View; | ||
import android.view.animation.Transformation; | ||
import android.widget.Gallery; | ||
import android.widget.ImageView; | ||
|
||
public class CoverFlow extends Gallery { | ||
|
||
/** | ||
* Graphics Camera used for transforming the matrix of ImageViews | ||
*/ | ||
private Camera mCamera = new Camera(); | ||
|
||
/** | ||
* The maximum angle the Child ImageView will be rotated by | ||
*/ | ||
private int mMaxRotationAngle = 30; | ||
|
||
/** | ||
* The maximum zoom on the centre Child | ||
*/ | ||
private int mMaxZoom = -90; | ||
|
||
private float mZoom = -310.0f; | ||
|
||
/** | ||
* The Centre of the Coverflow | ||
*/ | ||
private int mCoveflowCenter; | ||
|
||
public CoverFlow(Context context) { | ||
super(context); | ||
this.setStaticTransformationsEnabled(true); | ||
} | ||
|
||
public CoverFlow(Context context, AttributeSet attrs) { | ||
super(context, attrs); | ||
this.setStaticTransformationsEnabled(true); | ||
} | ||
|
||
public CoverFlow(Context context, AttributeSet attrs, int defStyle) { | ||
super(context, attrs, defStyle); | ||
this.setStaticTransformationsEnabled(true); | ||
} | ||
|
||
/** | ||
* Get the max rotational angle of the image | ||
* | ||
* @return the mMaxRotationAngle | ||
*/ | ||
public int getMaxRotationAngle() { | ||
return mMaxRotationAngle; | ||
} | ||
|
||
/** | ||
* Set the max rotational angle of each image | ||
* | ||
* @param maxRotationAngle | ||
* the mMaxRotationAngle to set | ||
*/ | ||
public void setMaxRotationAngle(int maxRotationAngle) { | ||
mMaxRotationAngle = maxRotationAngle; | ||
} | ||
|
||
/** | ||
* Get the Max zoom of the centre image | ||
* | ||
* @return the mMaxZoom | ||
*/ | ||
public int getMaxZoom() { | ||
return mMaxZoom; | ||
} | ||
|
||
/** | ||
* Set the max zoom of the centre image | ||
* | ||
* @param maxZoom | ||
* the mMaxZoom to set | ||
*/ | ||
public void setMaxZoom(int maxZoom) { | ||
mMaxZoom = maxZoom; | ||
} | ||
|
||
/** | ||
* Get the Centre of the Coverflow | ||
* | ||
* @return The centre of this Coverflow. | ||
*/ | ||
private int getCenterOfCoverflow() { | ||
return (getWidth() - getPaddingLeft() - getPaddingRight()) / 2 | ||
+ getPaddingLeft(); | ||
} | ||
|
||
/** | ||
* Get the Centre of the View | ||
* | ||
* @return The centre of the given view. | ||
*/ | ||
private static int getCenterOfView(View view) { | ||
return view.getLeft() + view.getWidth() / 2; | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
* | ||
* @see #setStaticTransformationsEnabled(boolean) | ||
*/ | ||
protected boolean getChildStaticTransformation(View child, Transformation t) { | ||
|
||
final int childCenter = getCenterOfView(child); | ||
final int childWidth = child.getWidth(); | ||
int rotationAngle = 0; | ||
|
||
t.clear(); | ||
t.setTransformationType(Transformation.TYPE_MATRIX); | ||
|
||
if (childCenter == mCoveflowCenter) { | ||
transformImageBitmap((ImageView) child, t, 0); | ||
} else { | ||
rotationAngle = (int) (((float) (mCoveflowCenter - childCenter) / childWidth) * mMaxRotationAngle); | ||
if (Math.abs(rotationAngle) > mMaxRotationAngle) { | ||
rotationAngle = (rotationAngle < 0) ? -mMaxRotationAngle | ||
: mMaxRotationAngle; | ||
} | ||
transformImageBitmap((ImageView) child, t, rotationAngle); | ||
} | ||
|
||
return true; | ||
} | ||
|
||
/** | ||
* This is called during layout when the size of this view has changed. If | ||
* you were just added to the view hierarchy, you're called with the old | ||
* values of 0. | ||
* | ||
* @param w | ||
* Current width of this view. | ||
* @param h | ||
* Current height of this view. | ||
* @param oldw | ||
* Old width of this view. | ||
* @param oldh | ||
* Old height of this view. | ||
*/ | ||
protected void onSizeChanged(int w, int h, int oldw, int oldh) { | ||
mCoveflowCenter = getCenterOfCoverflow(); | ||
super.onSizeChanged(w, h, oldw, oldh); | ||
} | ||
|
||
/** | ||
* Transform the Image Bitmap by the Angle passed | ||
* | ||
* @param imageView | ||
* ImageView the ImageView whose bitmap we want to rotate | ||
* @param t | ||
* transformation | ||
* @param rotationAngle | ||
* the Angle by which to rotate the Bitmap | ||
*/ | ||
private void transformImageBitmap(ImageView child, Transformation t, | ||
int rotationAngle) { | ||
mCamera.save(); | ||
final Matrix imageMatrix = t.getMatrix(); | ||
; | ||
final int imageHeight = child.getLayoutParams().height; | ||
; | ||
final int imageWidth = child.getLayoutParams().width; | ||
final int rotation = Math.abs(rotationAngle); | ||
|
||
mCamera.translate(0.0f, -10f, mZoom); | ||
|
||
// As the angle of the view gets less, zoom in | ||
if (rotation < mMaxRotationAngle) { | ||
float zoomAmount = (float) (mMaxZoom + (rotation * 1.5)); | ||
mCamera.translate(0.0f, 0.0f, zoomAmount); | ||
} | ||
|
||
mCamera.rotateY(rotationAngle); | ||
mCamera.getMatrix(imageMatrix); | ||
imageMatrix.preTranslate(-(imageWidth / 2), -(imageHeight / 2)); | ||
imageMatrix.postTranslate((imageWidth / 2), (imageHeight / 2)); | ||
mCamera.restore(); | ||
} | ||
} |
Oops, something went wrong.