`
chroya
  • 浏览: 656140 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android画图之Bitmap(一)

阅读更多

 

    最近写电子书程序,设计到对图像的处理,主要是对 Bitmap 的处理,所以有一点小小的心得,拿出来跟大家分享一下。

要把一个 Bitmap 画到 View 上,必须用到的类有 android.graphics.Canvas, android.graphics.Bitmap 。方法很简单,在 View 里面,重载 onDraw(Canvas canvas) 方法,然后用 canvas.drawBitmap() 方法,将其画在屏幕上。

public class MyView extends View {
	
	private Bitmap mBitmap;
	
	public MyView(Context context) {
		super(context);
		initialize();
	}

	private void initialize() {
		
		Bitmap bmp = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitmap();
		
		mBitmap = bmp;
		
	}
	
	@Override protected void onDraw(Canvas canvas) {
//		super.onDraw(canvas);  //当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。
		canvas.drawBitmap(mBitmap, 0, 0, null);
	}
}

 结果:结果

原图:原图

 

虽然这仅仅只是第一步,但是很鼓舞人心呢,呵呵。

      上面是直接将原图画在屏幕上,没有任何处理,因为图片比屏幕大,所以超出的部分看不到。我们试着将图片拉伸以填满整个屏幕。

 

public class MyView extends View {
	
	private Bitmap mBitmap;
	private Matrix mMatrix = new Matrix();
	
	private static int mScreenWidth;
	private static int mScreenHeight;
	
	public MyView(Context context) {
		super(context);
		initialize();
	}

	private void initialize() {
		DisplayMetrics dm = getResources().getDisplayMetrics();
		mScreenWidth = dm.widthPixels;
		mScreenHeight = dm.heightPixels;
		
		Bitmap bmp = ((BitmapDrawable)getResources().getDrawable(R.drawable.show)).getBitmap();
		mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);		
	}
	
	@Override protected void onDraw(Canvas canvas) {
//		super.onDraw(canvas);  //当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。
		canvas.drawBitmap(mBitmap, 0, 0, null);
	}
}

 显示结果:充满屏幕

 

      下面一篇将介绍对Bitmap的一些操作。

 

 

 

5
0
分享到:
评论

相关推荐

    android 画图 bitmap drawable canvas paint

    android 画图 bitmap drawable canvas paint

    Android画图学习.pdf

    • Android画图学习总结(二)——Bitmap • Android画图学习总结(三)——Drawable • Android画图学习总结(四)——Animation(上) • Android画图学习总结(四)——Animation(中) • Android画图学习...

    Android 画图/签名

    使用Canvas实现绘图 全屏手写等功能 代码简单清晰易读易懂 扩展性 移植性强

    Android画图学习

    • Android画图学习总结(二)——Bitmap • Android画图学习总结(三)——Drawable • Android画图学习总结(四)——Animation(上) • Android画图学习总结(四)——Animation(中) • Android画图学习...

    Android画图学习笔记

    Android画图学习笔记。针对android中的画图中需要的一些类进行介绍,例如Bitmap, Paint, Drawable, Animation等。

    Android 画图工具源码.zip

    一个画图软件,可以画直线、矩形、圆形、三角形、立方体、圆柱体。 直线可以延长、缩短、拖动;矩形、圆形、三角形需要可以拖动、改变大小。 实现方式: 一个主view类(一个自定义view),在主view类中定义了统一...

    Android编程画图之抗锯齿解决方法

    本文实例分析了Android编程画图之抗锯齿解决方法。分享给大家供大家参考,具体如下: 在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿...

    实现在android上画图的项目

    //画图类型 private boolean isClear = false; //onDraw方法中用来判断当前是否是清除图像 public DrawView(Context context, AttributeSet attrs) { super(context, attrs); createCanvas(); //...

    Android入门之画图详解

    要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口: 1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间; 2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话...

    Android画图之抗锯齿paint和Canvas两种方式实例

    在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。 paint.setAntiAlias(true); ...

    Android 自定义view之画图板实现方法

    看效果: 中间一个画图板 上方小控件用来显示实时画出的图形 下方小控件用来做一些画图的控制 2个小控件都能移动 顺带还有一个刮刮卡效果,只需要改一个参数: 自定义view首先要自定义属性: 在values下面创建...

    android手势绘制文字

    1.在一个View对象中绘制。继承View类,在子类的 onDraw()方法中写入自己定义的绘制代码。 2.直接在画布(Canvas)上绘制。 关于画面清除我想到了两种方法...2.Bitmap类中有一个eraseColor函数,利用它把位图绘制为白色

    Android画图并保存图片的具体实现代码

    也可以先使用BitmapFactory创建一个Bitmap对象,作为新的Canvas对象的参数,也就是说这个画布不是空白的,如果你想保存图片的话,最好是Bitmap是一个新的,而不是从某个文件中读入进来的,或者是Drawable对象。...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    android开发demo集合

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

    Android开发实现各种图形绘制功能示例

    首先自定义一个View类,这个view类里面需要一个Paint对象来控制图形的属性,需要一个Path对象来记录图形绘制的路径,需要一个Canvas类来执行绘图操作,还需要一个Bitmap类来盛放绘画的结果。 Paint mPaint = new ...

    Google Android SDK开发范例大全的目录

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

Global site tag (gtag.js) - Google Analytics