package com.cml.ui; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.View; import com.example.slidingmenutest.R; public class CircleImageView extends View { private String source; private int radius; public CircleImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); source = attrs.getAttributeValue("android", "src"); Log.i("CircleImageView", "��ͼ����1"); } public CircleImageView(Context context, AttributeSet attrs) { super(context, attrs); source = attrs.getAttributeValue("android", "src"); Log.i("CircleImageView", "��ͼ����2"); } public CircleImageView(Context context) { super(context); Log.i("CircleImageView", "��ͼ����3"); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); // ������� paint.setAntiAlias(true); paint.setStyle(Style.FILL); paint.setColor(Color.GRAY); paint.setDither(false); int radius = 100; Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.head); canvas.drawCircle(radius, radius, radius, paint); int start = (int) (radius - radius * Math.cos(Math.PI / 4)); int end = (int) (start + radius * 2 * Math.cos(Math.PI / 4)); Rect dest = new Rect(start, start, end, end); canvas.drawBitmap(bitmap, null, dest, paint); } public int getRadius() { return radius; } public void setRadius(int radius) { this.radius = radius; } }