/* * This file is part of WhereYouGo. * * WhereYouGo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * WhereYouGo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with WhereYouGo. If not, see <http://www.gnu.org/licenses/>. * * Copyright (C) 2012 Menion <whereyougo@asamm.cz> */ package menion.android.whereyougo.utils; import menion.android.whereyougo.R; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; public class Images { private static final String TAG = "Images"; /** bigger icon size for titles, logos, etc... */ public static final int SIZE_HUGE = (int) Utils.getDpPixels(48); /** bigger icon size for titles, logos, etc... */ public static final int SIZE_BIG = (int) Utils.getDpPixels(32); /** smaller icon size mainly for map items */ public static final int SIZE_MEDIUM = (int) Utils.getDpPixels(24); /** smallest icon size */ public static final int SIZE_SMALL = (int) Utils.getDpPixels(16); public static final Bitmap IMAGE_EMPTY_B = getImageB(R.drawable.var_empty); public static Drawable getImageD(int id) { try { Drawable draw = A.getApp().getResources().getDrawable(id); draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); return draw; } catch (Exception e) { // some exceptions on market (crash errors) return null; } } public static Drawable getImageD(int id, int size) { if (A.getApp() == null) return null; Drawable draw = A.getApp().getResources().getDrawable(id); return getSizeOptimizedIcon(draw, size); } public static Drawable getImageD(Bitmap bitmap) { Drawable draw = new BitmapDrawable(bitmap); draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); return draw; } public static Bitmap getImageB(int id) { try { if (id <= 0) return IMAGE_EMPTY_B; return BitmapFactory.decodeResource(A.getApp().getResources(), id); } catch (Exception e) { Logger.w(TAG, "getImageB(" + id + "), e:" + e.toString()); return IMAGE_EMPTY_B; } } public static Bitmap getImageB(int id, int width) { Bitmap bitmap = getImageB(id); return resizeBitmap(bitmap, width); } public static Drawable getSizeOptimizedIcon(Drawable draw, int newSize) { if (draw == null) return getImageD(R.drawable.var_empty); draw.setBounds(0, 0, newSize, newSize); draw.invalidateSelf(); return draw; } public static Bitmap resizeBitmap(Bitmap draw, int newWidth) { if (draw == null) return null; return resizeBitmap(draw, newWidth, (int) (newWidth * draw.getHeight() / draw.getWidth())); } public static Bitmap resizeBitmap(Bitmap draw, int newWidth, int newHeight) { if (draw == null || newWidth <= 0 || draw.getWidth() == newWidth) return draw; return Bitmap.createScaledBitmap(draw, newWidth, newHeight, true); } }