Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions App/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ android {

dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile 'com.flaviofaria:kenburnsview:1.0.4'
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,37 +1,54 @@
package com.flavienlaurent.notboringactionbar;

import android.animation.LayoutTransition;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.text.style.TypefaceSpan;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.ViewSwitcher;

import com.flaviofaria.kenburnsview.KenBurnsView;
import com.flaviofaria.kenburnsview.KenBurnsView.TransitionListener;
import com.flaviofaria.kenburnsview.Transition;

import java.util.ArrayList;

public class NoBoringActionBarActivity extends Activity {
public class NoBoringActionBarActivity extends Activity implements TransitionListener {

private static final int TRANSITIONS_TO_SWITCH = 3;

private static final int[] PICTURE_RES_IDS = {
R.drawable.picture0,
R.drawable.picture1
};

private static final String TAG = "NoBoringActionBarActivity";
private int mActionBarTitleColor;
private int mActionBarHeight;
private int mHeaderHeight;
private int mMinHeaderTranslation;
private ListView mListView;
private KenBurnsView mHeaderPicture;
private ViewSwitcher mPictureSwitcher;
private KenBurnsView mPicture0;
private KenBurnsView mPicture1;
private ImageView mHeaderLogo;
private View mHeader;
private View mPlaceHolderView;
Expand All @@ -40,6 +57,9 @@ public class NoBoringActionBarActivity extends Activity {
private RectF mRect1 = new RectF();
private RectF mRect2 = new RectF();

private int mTransitionsCount = 0;
private int mCurrentPictureIndex = 0;

private AlphaForegroundColorSpan mAlphaForegroundColorSpan;
private SpannableString mSpannableString;

Expand All @@ -57,8 +77,12 @@ protected void onCreate(Bundle savedInstanceState) {

mListView = (ListView) findViewById(R.id.listview);
mHeader = findViewById(R.id.header);
mHeaderPicture = (KenBurnsView) findViewById(R.id.header_picture);
mHeaderPicture.setResourceIds(R.drawable.picture0, R.drawable.picture1);
mPictureSwitcher = (ViewSwitcher) findViewById(R.id.header_switcher);
mPicture0 = (KenBurnsView) findViewById(R.id.picture0);
mPicture0.setTransitionListener(this);
mPicture1 = (KenBurnsView) findViewById(R.id.picture1);
mPicture1.setTransitionListener(this);
swapPicture();
mHeaderLogo = (ImageView) findViewById(R.id.header_logo);

mActionBarTitleColor = getResources().getColor(R.color.actionbar_title_color);
Expand All @@ -70,6 +94,7 @@ protected void onCreate(Bundle savedInstanceState) {
setupListView();
}


private void setupListView() {
ArrayList<String> FAKES = new ArrayList<String>();
for (int i = 0; i < 1000; i++) {
Expand Down Expand Up @@ -171,4 +196,29 @@ public int getActionBarHeight() {
mActionBarHeight = TypedValue.complexToDimensionPixelSize(mTypedValue.data, getResources().getDisplayMetrics());
return mActionBarHeight;
}


@Override
public void onTransitionStart(Transition transition) {

}


@Override
public void onTransitionEnd(Transition transition) {
mTransitionsCount++;
if (mTransitionsCount == TRANSITIONS_TO_SWITCH) {
swapPicture();
mTransitionsCount = 0;
}
}


private void swapPicture() {
KenBurnsView kenBurnsView = (KenBurnsView) mPictureSwitcher.getNextView();
mCurrentPictureIndex = (mCurrentPictureIndex + 1) % PICTURE_RES_IDS.length;
int drawableResId = PICTURE_RES_IDS[mCurrentPictureIndex];
kenBurnsView.setImageResource(drawableResId);
mPictureSwitcher.showNext();
}
}
19 changes: 16 additions & 3 deletions App/src/main/res/layout/activity_noboringactionbar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,24 @@
android:layout_width="match_parent"
android:layout_height="@dimen/header_height">

<com.flavienlaurent.notboringactionbar.KenBurnsView
android:id="@+id/header_picture"
<ViewSwitcher
android:id="@+id/header_switcher"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/picture0" />
android:inAnimation="@android:anim/fade_in"
android:outAnimation="@android:anim/fade_out">

<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/picture0"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/picture1"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</ViewSwitcher>

<ImageView
android:id="@+id/header_logo"
Expand Down
18 changes: 0 additions & 18 deletions App/src/main/res/layout/view_kenburns.xml

This file was deleted.