Created
May 26, 2013 09:55
-
-
Save icastell/5652284 to your computer and use it in GitHub Desktop.
Pushing the ActionBar to the Next Level
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
<FrameLayout | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content"> | |
<ImageView | |
android:id="@+id/image_header" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:scaleType="centerCrop" | |
android:src="@drawable/daft_punk"/> | |
<View | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:background="@drawable/gradient"/> | |
</FrameLayout> |
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
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.cyrilmottier.android.translucentactionbar" | |
android:versionCode="1" | |
android:versionName="1.0" > | |
<uses-sdk | |
android:minSdkVersion="14" | |
android:targetSdkVersion="17" /> | |
<application | |
android:allowBackup="true" | |
android:icon="@drawable/ic_launcher" | |
android:label="@string/app_name" | |
android:theme="@style/Theme.TranslucentActionBar"> | |
<activity | |
android:name=".HomeActivity" | |
android:theme="@style/Theme.TranslucentActionBar.ActionBar.Overlay"> | |
<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
<?xml version="1.0" encoding="utf-8"?> | |
<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
android:shape="rectangle"> | |
<size android:height="100dp"/> | |
<gradient | |
android:angle="270" | |
android:startColor="#8000" | |
android:endColor="#0000"/> | |
</shape> |
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
... | |
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { | |
mActionBarBackgroundDrawable.setCallback(mDrawableCallback); | |
} | |
... | |
private Drawable.Callback mDrawableCallback = new Drawable.Callback() { | |
@Override | |
public void invalidateDrawable(Drawable who) { | |
getActionBar().setBackgroundDrawable(who); | |
} | |
@Override | |
public void scheduleDrawable(Drawable who, Runnable what, long when) { | |
} | |
@Override | |
public void unscheduleDrawable(Drawable who, Runnable what) { | |
} | |
}; |
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
private boolean mIsOverScrollEnabled = true; | |
public void setOverScrollEnabled(boolean enabled) { | |
mIsOverScrollEnabled = enabled; | |
} | |
public boolean isOverScrollEnabled() { | |
return mIsOverScrollEnabled; | |
} | |
@Override | |
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, | |
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { | |
return super.overScrollBy( | |
deltaX, | |
deltaY, | |
scrollX, | |
scrollY, | |
scrollRangeX, | |
scrollRangeY, | |
mIsOverScrollEnabled ? maxOverScrollX : 0, | |
mIsOverScrollEnabled ? maxOverScrollY : 0, | |
isTouchEvent); | |
} |
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
<?xml version="1.0" encoding="utf-8"?> | |
<resources> | |
<style name="Widget.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> | |
<item name="android:background">@drawable/ab_background</item> | |
</style> | |
<style name="Widget.ActionBar.Transparent"> | |
<item name="android:background">@android:color/transparent</item> | |
</style> | |
</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
<?xml version="1.0" encoding="utf-8"?> | |
<resources> | |
<style name="Theme.TranslucentActionBar" parent="@android:style/Theme.Holo.Light.DarkActionBar"> | |
<item name="android:actionBarStyle">@style/Widget.ActionBar</item> | |
</style> | |
<style name="Theme.TranslucentActionBar.ActionBar" /> | |
<style name="Theme.TranslucentActionBar.ActionBar.Overlay"> | |
<item name="android:actionBarStyle">@style/Widget.ActionBar.Transparent</item> | |
<item name="android:windowActionBarOverlay">true</item> | |
</style> | |
</resources> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment