package com.smit.MyView; import com.smit.EasyLauncher.R; import android.R.integer; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Region; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.ImageButton; public class MyViewctrl extends ImageButton { private Bitmap img, r_img; private Canvas canvas; private Paint paint; Matrix matrix; Bitmap viewbitmap = null; int mViewWidth = 0, mViewHeight = 0; float mAngle; public int curid; private void Init() { // BitmapFactory����Դ����һ��Bitmap������ЩԴ�������ļ������������� paint = new Paint(); matrix = new Matrix(); // �þ���ʵ�ַ�ת������ΪFLOAT�� matrix.postRotate(mAngle); int width = img.getWidth(); int height = img.getHeight(); // ԴBitmapͨ��һ��Matrix�仯�󣬷���һ�����ɱ��Bitmap r_img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true); } public MyViewctrl(Context context) { super(context); // Init(); } public MyViewctrl(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.myview); int icon = a.getResourceId(R.styleable.myview_icon, 0); img = BitmapFactory.decodeResource(context.getResources(), icon); mAngle = a.getFloat(R.styleable.myview_angle, 0); Init(); } public MyViewctrl(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // Init(); } // ���Զ���VIEWʱ������ʵ�ִ˷��� @Override public void onDraw(Canvas canvas) { // ����д����ķ���ʱ�������ȵ��ø���ķ��� Region region = new Region(0, 0, 1, 1); // ����Canvas��View�ϻ���һ��Bitmap��������������ʽ����ɫ int mwidth = getWidth(); int mheight = getHeight(); canvas.drawBitmap(r_img, 0, 0, paint); Rect rc = canvas.getClipBounds(); paint.setColor(Color.RED); paint.setTextSize(20); paint.setAntiAlias(true); canvas.drawText("ABC", 0, 0, paint); } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } //����ͼƬ public void setIcon(Bitmap bitmap){ img=bitmap; } //���ýǶ� public void setangle(float angle){ mAngle=angle; } public void createctrl(){ Init(); } public void SetCurId(int id) { curid = id; } public int getCurId() { return curid; } }