package com.tos_bot.ui;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageButton;
import com.tos_bot.utility.FileLoader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
/**
* Created by Sean.
*/
public abstract class TosImageButton extends ImageButton{
public TosImageButton(Context context) {
super(context);
}
protected Bitmap resizeImage(Bitmap srcImage, double ratio){
return srcImage;
/*
return Bitmap.createScaledBitmap(
srcImage,
(int) (srcImage.getWidth() * ratio),
(int) (srcImage.getHeight() * ratio),
false);
*/
}
protected Bitmap getBitmapByFilename(String filename, double ratio) {
FileLoader.setContext(this.getContext());
BitmapFactory.Options option = new BitmapFactory.Options();
option.inJustDecodeBounds = true;
InputStream imageInputStream = FileLoader.getFileStreamByAsset("image/"
+ filename + ".png");
BitmapFactory.decodeStream(imageInputStream, null, option);
int width = (int) (option.outWidth*ratio);
int height = (int) (option.outHeight*ratio);
return decodeFile(imageInputStream,width,height);
}
public static Bitmap decodeFile(InputStream f, int WIDTH, int HIGHT) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(f, null, o);
// The new size we want to scale to
final int REQUIRED_WIDTH = WIDTH;
final int REQUIRED_HIGHT = HIGHT;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_WIDTH
&& o.outHeight / scale / 2 >= REQUIRED_HIGHT)
scale *= 2;
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(f, null, o2);
} catch (Exception e) {
}
return null;
}
}