package org.linnaeus.activity;
import android.content.Context;
import android.graphics.*;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by IntelliJ IDEA.
* User: Immortality
* Date: 11.11.2010
* Time: 18:11:18
*/
public class BrushStyleListAdapter extends ArrayAdapter {
private static final int RESOURCE = R.layout.image_list_item;
private String[] _objects;
private Context _context;
public BrushStyleListAdapter(Context context, String[] objects)
{
super(context, RESOURCE, objects);
_context = context;
_objects = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater)
_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(RESOURCE, null);
}
String styleItem = _objects[position];
if (styleItem != null) {
TextView textView = (TextView)view.findViewById(R.id.text);
textView.setText(styleItem);
ImageView imageView = (ImageView)view.findViewById(R.id.image);
Bitmap image = Bitmap.createBitmap(150, 48, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(image);
Paint mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(Color.DKGRAY);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(12);
switch (position) {
case 0: {
mPaint.setMaskFilter(null);
mPaint.setXfermode(null);
mPaint.setAlpha(0xFF);
break;
}
case 1: {
mPaint.setColor(Color.LTGRAY);
mPaint.setAlpha(0xFF);
//mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
break;
}
case 2: {
MaskFilter mEmboss = new EmbossMaskFilter(new float[]{1, 1, 1}, 0.4f, 6, 3.5f);
mPaint.setMaskFilter(mEmboss);
break;
}
case 3: {
MaskFilter mBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL);
mPaint.setMaskFilter(mBlur);
break;
}
case 4: {
//mPaint.setColor(Color.LTGRAY);
//mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP));
mPaint.setAlpha(0x80);
break;
}
}
float margin = 10;
float startX = margin + mPaint.getStrokeWidth() / 2;
float startY = image.getHeight() / 2;
float stopX = image.getWidth() - startX;
float stopY = startY;
canvas.drawLine(startX, startY, stopX, stopY, mPaint);
imageView.setImageBitmap(image);
}
return view;
}
}