Bitmap绘图
来源:互联网 发布:apache storm 快速入门 编辑:程序博客网 时间:2024/06/06 18:38
本文介绍了在bitmap上绘制三种图形,分别是:画线、写文本、画上原本存在 的图片
首先写好布局,代码如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="300dp" android:layout_height="350dp" android:layout_centerInParent="true"> <ImageView android:id="@+id/id_iv_1" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> <Button android:id="@+id/id_bt1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="点我"/> </RelativeLayout>
第二步,自定义一个工具类Mydraw包含三种方法drawLine(),drawText\(),drawPic(),从字面上很容易理解分别是:画线,写字,画图,代码如下:
public class Mydraw {static Bitmap mBitmap;public static void drawLine(ImageView view){int height=view.getHeight();int width=view.getWidth();mBitmap=Bitmap.createBitmap(width,height,Config.ARGB_8888);Canvas mCanvas=new Canvas(mBitmap);Paint mPaint=new Paint();mPaint.setColor(Color.parseColor("#7B7B7B"));mPaint.setStyle(Style.STROKE);mPaint.setStrokeWidth(5);mCanvas.drawLine(0, 0, width ,0 , mPaint);mCanvas.drawLine(width, 0, width ,height , mPaint);mCanvas.drawLine(0, 0, 0 ,height , mPaint);mCanvas.drawLine(0, height, width, height, mPaint);view.setImageBitmap(mBitmap);}public static void drawText(ImageView view){String mText="solo你好";Rect mRect=new Rect();int width=view.getWidth();int height=view.getHeight();Canvas mCanvas=new Canvas(mBitmap);Paint mPaint=new Paint();mPaint.setColor(Color.RED);mPaint.setTextSize(40);mPaint.getTextBounds(mText, 0, mText.length(), mRect);mCanvas.drawText(mText, width/2-mRect.width()/2,height/2+mRect.height()/2, mPaint);view.setImageBitmap(mBitmap);}public static void drawPic(ImageView view,Resources res){Bitmap bm=BitmapFactory.decodeResource(res,R.drawable.ic_launcher);int width=view.getWidth();int height=view.getHeight();Canvas mCanvas=new Canvas(mBitmap);mCanvas.drawBitmap(bm, width/2-bm.getWidth()/2, 0, null);view.setImageBitmap(mBitmap);}}
最后一步,在MianActivity中调用这些方法,代码如下:
public class MainActivity extends Activity implements OnClickListener {private ImageView mImageView;private Button mButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mImageView=(ImageView) findViewById(R.id.id_iv_1);mButton=(Button)findViewById(R.id.id_bt1);mButton.setOnClickListener(this);}//由于不能再onCreate()中直接测量view的宽和高,所以我们这里在button的点击事件中去执行这些测量@Overridepublic void onClick(View v) {Mydraw.drawLine(mImageView);Mydraw.drawText(mImageView);Mydraw.drawPic(mImageView, getResources());}}
0 0
- Bitmap绘图
- 绘图Bitmap
- Bitmap绘图
- 安卓 bitmap绘图
- CRectTracker, 绘图及BITMAP积累
- Android 高级绘图 Canvas, Paint , Bitmap
- Android绘图-Paint、Canvas、Bitmap、BitmapFactory
- android 在Bitmap上进行绘图操作
- IOS 绘图 bitmap 滤镜 图片合成
- Android xml绘图(一)-----------Bitmap
- Android opengl ES 实现后台绘图并保存成bitmap
- android之绘图——Canvas,bitmap,Paint的理解
- Android opengl ES实现后台绘图并保存为bitmap
- Android双缓冲绘图 Bitmap和Canvas 一看就懂
- Android opengl ES 实现后台绘图并保存成bitmap
- Android绘图总结(Bitmap,Canvas,Paint,圆角)
- Android中XML绘图:Bitmap/Shape/Seletor和Layer
- Bitmap
- PowerDesigner-使用总结
- 吞吐量与响应时间的关系
- SPOJ220:Relevant Phrases of Annihilation(后缀数组)
- HTML5本地存储——IndexedDB(一:基本使用)
- SDWebImage 应用地址
- Bitmap绘图
- at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:)
- 系统边界设计
- struts2的配置
- HTML5本地存储——IndexedDB(二:索引)
- Eclipse spring基本配置步骤
- jquery插件——jquery.slides.min.js
- GDB(一) 引言
- gzip: stdin: not in gzip format