package at.favre.lib.dali.util; import android.annotation.TargetApi; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Environment; import android.view.View; import android.widget.ImageView; /** * Created by PatrickF on 30.05.2014. */ public class LegacySDKUtil { private LegacySDKUtil() { } public static float getX(View v) { if (Build.VERSION.SDK_INT >= 11) { return v.getX(); } else { return v.getLeft(); } } public static float getY(View v) { if (Build.VERSION.SDK_INT >= 11) { return v.getY(); } else { return v.getTop(); } } /** * legacy helper for setting background */ public static void setViewBackground(View v, Drawable d) { if (Build.VERSION.SDK_INT >= 16) { v.setBackground(d); } else { v.setBackgroundDrawable(d); } } /** * returns the bytesize of the give bitmap */ public static int byteSizeOf(Bitmap bitmap) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { return bitmap.getAllocationByteCount(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { return bitmap.getByteCount(); } else { return bitmap.getRowBytes() * bitmap.getHeight(); } } public static String getBitmapId(Bitmap bitmap) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { return String.valueOf(bitmap.getGenerationId()); } else { //TODO: this is really since bitmap has no implementation of hashcode return String.valueOf(bitmap.hashCode()); } } /** * Gets the appropriate cache dir * @param ctx * @return */ public static String getCacheDir(Context ctx) { return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || (!Environment.isExternalStorageRemovable() && ctx.getExternalCacheDir() != null) ? ctx.getExternalCacheDir().getPath() : ctx.getCacheDir().getPath(); } @TargetApi(Build.VERSION_CODES.JELLY_BEAN) public static void setImageAlpha(ImageView imageView, int alpha) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { imageView.setImageAlpha(alpha); } else { imageView.setAlpha(alpha); } } }