package com.banking.xc.utils;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.Align;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import skytv_com.banking.enjoymovie.R;
/**
* 异常图片类
*/
public class ExceptionDrawable extends Drawable {
private final String text;
private static Bitmap bitmapLoading = null;
private static Bitmap bitmapNoPicture = null;
private static int widthLoading;
private static int heightLoading;
private static int widthNoPic;
private static int heightNoPic;
public static final int LOADING = 10;
public static final int NOPICTURE = 11;
private int tag ;
public ExceptionDrawable(Context context, String text,int tag) {
this.text = text;
this.tag = tag;
switch(tag){
case LOADING:
if (bitmapLoading == null) {
try {
BitmapDrawable drawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.loading_picture);
bitmapLoading = drawable.getBitmap();
widthLoading = bitmapLoading.getWidth();
heightLoading = bitmapLoading.getHeight();
} catch (Throwable e) {
e.printStackTrace();
}
}
break;
case NOPICTURE:
if (bitmapNoPicture == null) {
try {
BitmapDrawable drawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.no_picture);
bitmapNoPicture = drawable.getBitmap();
widthNoPic = bitmapNoPicture.getWidth();
heightNoPic = bitmapNoPicture.getHeight();
} catch (Throwable e) {
e.printStackTrace();
}
}
break;
}
}
/**
* 无图构造方法
* @param context
* @param text
* @param i
*/
/*public ExceptionDrawable(Context context, String text,int i) {
this.text = text;
if (bitmap == null) {
try {
BitmapDrawable drawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.no_picture);
bitmap = drawable.getBitmap();
width = bitmap.getWidth();
height = bitmap.getHeight();
} catch (Throwable e) {
e.printStackTrace();
}
}
}*/
private Paint paint = new Paint();
{
paint.setColor(Color.GRAY);
paint.setStyle(Paint.Style.FILL);
paint.setTextSize(DPIUtil.dip2px(12));
paint.setTextAlign(Align.CENTER);
paint.setAntiAlias(true);
}
@Override
public void draw(Canvas canvas) {
if (Log.D) {
Log.d(ExceptionDrawable.class.getName(), "draw() -->> ");
}
Rect bounds = getBounds();
float x = bounds.right - bounds.width() / 2;
float y = bounds.bottom - bounds.height() / 2;
canvas.drawText(text, x, y, paint);
switch(tag){
case LOADING:
if (bitmapLoading != null) {
canvas.drawBitmap(bitmapLoading, x - (widthLoading / 2), y - (heightLoading / 2) + DPIUtil.dip2px(10), paint);
}
break;
case NOPICTURE:
if (bitmapNoPicture != null) {
canvas.drawBitmap(bitmapNoPicture, x - (widthNoPic / 2), y - (heightNoPic / 2) + DPIUtil.dip2px(10), paint);
}
break;
}
}
@Override
public int getOpacity() {
return 0;
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter cf) {
}
}