Skip to content

Instantly share code, notes, and snippets.

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
/*
* An ImageView that scales its bounds while following the aspect ratio
* of its drawable. This is useful for showing images in fill_parent
* situations when the drawable itself is smaller than the dimensions of
* the view.
@neilbantoc
neilbantoc / WrapContentViewPager.java
Created February 5, 2014 10:38
A simple view pager that supports wrapping of content by measuring first child and setting that as the viewpager's height.
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;
/*
* A simple view pager that supports wrapping of content
* by measuring first child and setting that as the viewpager's height.
*/
public class WrapContentViewPager extends ViewPager{
@neilbantoc
neilbantoc / AspectRatioImageView.java
Last active August 29, 2015 13:56
An ImageView that adjusts its height according to a given ratio. This is useful for dynamic layouts where the ImageView's height must adjust accordingly when its width changes, say, for instances where its width is fill_parent.
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;
/*
* An ImageView that adjusts its height according
* to a given ratio. This is useful for dynamic layouts where
* the ImageView's height must adjust accordingly when its width
* changes, say, for instances where its width is fill_parent.
*
@neilbantoc
neilbantoc / Open or install static method
Last active August 29, 2015 14:00
Open or install an app
public static void openOrInstallApp(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent == null) {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + packageName));
// intent.setData(Uri.parse("http://play.google.com/store/apps/details?id=" + packageName));
}
context.startActivity(intent);
@neilbantoc
neilbantoc / BaseDataManager
Created May 20, 2014 05:56
Base class for data manager pattern
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import com.stratpoint.starstrak.StarstrakApplication;
@neilbantoc
neilbantoc / gist:5aabc2aa471ba5440a9f
Last active August 29, 2015 14:04
Lockscreen Remote Controls for Media Player
private Song mSong;
private RemoteControlClient remoteControlClient;
private AudioManager audioManager;
// ...
private void broadcastTrackInfoToLockscreen(){
MetadataEditor editor = remoteControlClient.editMetadata(false);
editor.putString(MediaMetadataRetriever.METADATA_KEY_ALBUM, mSong.getFullAlbumTitle());
@neilbantoc
neilbantoc / Blur.java
Created August 4, 2014 10:19
FastBlur with downscaling for faster performance
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
public class Blur {
public static Bitmap fastblur(Context context, Bitmap sentBitmap, int radius) {
float scaleFactor = 8;
Bitmap bitmap = Bitmap.createScaledBitmap(sentBitmap, (int) (sentBitmap.getWidth() / scaleFactor), (int) (sentBitmap.getHeight() / scaleFactor), true);
@neilbantoc
neilbantoc / AndroidBug5497Workaround.java
Created August 4, 2014 10:20
AndroidBug5497Workaround for fullscreen activities with edit text
package com.myspace.ilike.common.util;
import android.app.Activity;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
public class AndroidBug5497Workaround {
@neilbantoc
neilbantoc / FormatUtil.java
Created August 4, 2014 10:21
Format Utils
import java.util.Locale;
public class FormatUtil {
public static final String formatTimeInMillisToHMS(int timeInMillis){
int s = (timeInMillis / 1000) % 60;
int m = (timeInMillis / (1000 * 60)) % 60;
int h = (timeInMillis) % 24;
return String.format(Locale.US, "%d:%02d:%02d", h, m, s);
}
@neilbantoc
neilbantoc / RoundedDrawable.java
Created August 4, 2014 10:27
RoundedSquareImageViews for Rounded image views locked in a square aspect ratio
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;