Android实现自定义view---绘制图片
2014-05-04 18:21
931 查看
主要原理是:extends view重载onDrow(),需要一bitmap,重载view,在 canvas上画临时bmp,当按下确定的时候按下
画到real_bmp上,其他的跟前面的基本上没有什么区别。
画到real_bmp上,其他的跟前面的基本上没有什么区别。
import com.example.test.R; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.os.Bundle; import android.provider.ContactsContract.CommonDataKinds.Event; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; public class bmpeffect extends Activity{ /* * 需要一bitmap,重载view,在 canvas上画临时bmp,当按下确定的时候按下 * 画到real_bmp上,其他的跟前面的基本上没有什么区别 */ private static Bitmap src; private static Bitmap heart; private static Bitmap star; private static Bitmap star2; private static int choose; private int height; private int width; public static float bmp_x; public static float bmp_y; private Canvas my_canvas; public void onCreate(Bundle save){ Log.e("on create", "hello"); super.onCreate(save); src=data.src_bmp; if(data.src_bmp==null) Log.e("bmp", "null"); my_canvas=new Canvas(data.src_bmp); height=data.src_bmp.getHeight(); width=data.src_bmp.getWidth(); heart=data.getbmp(getResources(), R.drawable.small_heart); star=data.getbmp(getResources(), R.drawable.small_star); star2=data.getbmp(getResources(), R.drawable.star8); choose=0; setContentView(R.layout.bmptest); } public void on_star2(final View v){ //star8; choose=3; } public void on_star(final View v){ choose=2; } public void on_heart(final View v){ choose=1; } public void on_ok(final View v){ drow_bmp(my_canvas); } public static void drow_bmp(Canvas canvas){ switch(choose){ case 1: canvas.drawBitmap(heart, bmp_x, bmp_y, null); break; case 2: canvas.drawBitmap(star, bmp_x,bmp_y, null); break; case 3: //canvas.drawBitmap(star2, matrix, paint) canvas.drawBitmap(star2, bmp_x, bmp_y, null); } } public static class bmpview extends View{ public bmpview(Context context,AttributeSet attrs) { super(context,attrs); // TODO Auto-generated constructor stub } protected void onDraw(Canvas canvas){ canvas.drawColor(0xff000000); Log.i("canvas", "drow"); if(src!=null){ canvas.drawBitmap(src, 0, 0, null); } drow_bmp(canvas); } public boolean onTouchEvent(MotionEvent event){ int action=event.getAction(); //现在应该可以不用区分不同的手势事件了,只需要得到 bmp_x=event.getX(); bmp_y=event.getY(); invalidate(); return true; } } }
效果如下
相关文章推荐
- android自定义View实现图片的绘制、旋转、缩放
- Android自定义ImageView实现图片缩放滑动,双击放大缩小,多点触控旋转,圆角矩形,圆形和仿刮刮卡效果
- Android自定义ImageView实现点击两张图片切换效果
- android viewPager 实现图片无限循环滑动并带有进度的自定义布局
- Android自定义view实现图片选色器
- Android自定义ImageView实现圆形图片
- Android实现图片轮显效果——自定义ViewPager控件
- Android开发之自定义圆角矩形图片ImageView的实现 - Jamy Cai
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
- Android-自定义TextView和异步加载图片的实现
- Android-图片预览(自定义ImageView实现图片缩放,多点触控,自由移动)
- Android自定义View实现不断旋转的圆形图片
- Android 通过图片进行自定义View绘制
- Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView
- Android 自定义imageview实现图片缩放实例详解
- Android使用自定义View继承SurfaceView实现动态折线图的绘制
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
- Android自定义View实现绘制虚线的方法详解
- Android自定义ImageView实现在图片上添加图层效果