package com.jaf.biubiu;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.text.TextUtils;
import android.widget.ImageView;
import android.widget.TextView;
import com.androidquery.callback.AjaxStatus;
import com.androidquery.callback.BitmapAjaxCallback;
import com.jaf.bean.BeanUnionItem;
import com.jaf.jcore.Application;
import com.jaf.jcore.BindView;
import com.jaf.jcore.BindableView;
/**
* Created by jarrah on 2015/4/17.
*/
public class ViewUnionItemView extends BindableView{
@BindView(id = R.id.topicIcon)
private ImageView mTopicIcon;
@BindView(id = R.id.topicTitle)
private TextView mTopicTitle;
@BindView(id =R.id.distanceTag)
private TextView mDistanceTag;
@BindView(id = R.id.distance)
private TextView mDistance;
@BindView(id = R.id.topicCount)
private TextView mTopicCount;
public ViewUnionItemView(Context context) {
super(context);
}
@Override
public void onViewDidLoad() {
}
@Override
public int onLoadViewResource() {
return R.layout.view_topic_item;
}
public void setData(BeanUnionItem data) {
if (data != null) {
loadImage(mTopicIcon, data.getPicPath());
boolean empty = TextUtils.isEmpty(data.getLocDesc());
int bgId = empty ? R.drawable.shape_orange_corner_fill : R.drawable.shape_blue_corner_fill;
int tagTextId = empty ? R.string.tagDistance : R.string.tagSchool;
mDistanceTag.setBackgroundResource(bgId);
mDistanceTag.setText(tagTextId);
mTopicTitle.setText(data.getUnionName());
String distance = data.getDistance() < 3 ? "<3" : String.valueOf(data.getDistance());
String distanceText = empty ? getContext().getString(R.string.distance, distance) : data.getLocDesc();
mDistance.setText(distanceText);
mTopicCount.setText(getContext().getString(R.string.topicCount, data.getQuestionNum()));
}
}
private void loadImage(ImageView iv, String path) {
Application.getInstance().getAQuery().id(iv).image(path, false, true, 500, 0, new BitmapAjaxCallback() {
@Override
protected void callback(String url, ImageView iv, Bitmap bm, AjaxStatus status) {
bm = processBitmap(bm, 0);
super.callback(url, iv, bm, status);
}
});
}
public Bitmap processBitmap(Bitmap bitmap, int round) {
int pixels = 0;
if (round == 0)
pixels = 400;
else
pixels = round;
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}