`

Android DrawBitmap绘制图像

阅读更多

package com.Aina.Android;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;

public class GameView extends View implements Runnable {

	private Paint mPaint;
	private Bitmap mBitqq;
	private Bitmap mBitDestTop;
	private int movex = 0;
	private int DisplayWidth;//屏幕宽带
	private int DisplayHeight;//屏幕高度

	public GameView(Context context,int DisplayWidth,int DisplayHeight) {
		super(context);
		this.DisplayWidth = DisplayWidth;
		this.DisplayHeight = DisplayHeight;
		mPaint = new Paint();
		mBitqq = ((BitmapDrawable) this.getResources().getDrawable(
				R.drawable.qq)).getBitmap();
		mBitDestTop = ((BitmapDrawable) this.getResources().getDrawable(
				R.drawable.desktop)).getBitmap();
		new Thread(this).start();
		
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		canvas.drawColor(Color.BLACK);// 清屏
		canvas.drawBitmap(mBitqq, 0, 0, mPaint);
		this.DrawImage(canvas, mBitDestTop, movex, mBitqq.getHeight() + 2,
				mBitDestTop.getWidth(), mBitDestTop.getHeight(), 0,0);
	}

	@Override
	public void run() {
		while (!Thread.interrupted()) {
			try {
				Thread.sleep(100);
			} catch (Exception ex) {
				ex.printStackTrace();
				Thread.currentThread().interrupt();
			}
			this.postInvalidate();
		}
	}

	/**
	 * x:屏幕上的x坐标 y:屏幕上的y坐标 w:要绘制的图片的宽度 h:要绘制的图片的高度 bx:图片上的x坐标 by:图片上的y坐标
	 * 
	 * @param canvas
	 * @param mBitmap
	 * @param x
	 * @param y
	 * @param w
	 * @param h
	 * @param bx
	 * @param by
	 */
	public void DrawImage(Canvas canvas, Bitmap mBitmap, int x, int y, int w,
			int h, int bx, int by) {
		Rect src = new Rect();// 图片裁剪区域
		Rect dst = new Rect();// 屏幕裁剪区域
		src.left = bx;
		src.top = by;
		src.right = bx + w;
		src.bottom = by + h;

		dst.left = x;
		dst.top = y;
		dst.right = x + w;
		dst.bottom = y + h;

		canvas.drawBitmap(mBitmap, src, dst, mPaint);
		src = null;
		dst = null;
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
			if (this.movex > 0) {
				this.movex -= 5;
			}
		} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
			if (this.movex + this.mBitDestTop.getWidth() < this.DisplayWidth) {
				this.movex += 5;
			}
		}
		return super.onKeyDown(keyCode, event);
	}
}
 package com.Aina.Android;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.KeyEvent;

public class Test_DrawBitmap extends Activity {
    /** Called when the activity is first created. */
	private GameView gv = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DisplayMetrics dm = new DisplayMetrics();
        this.getWindowManager().getDefaultDisplay().getMetrics(dm);        
        gv = new GameView(this,dm.widthPixels,dm.heightPixels);
        setContentView(gv);
    }
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		return gv.onKeyDown(keyCode, event);
	}
    
}
 
分享到:
评论

相关推荐

    Android canvas drawBitmap方法详解及实例

    `drawBitmap()`方法是Canvas的一个关键函数,用于在Canvas上绘制Bitmap图像。本文将深入解析`drawBitmap()`方法的参数及其用法,并通过实例来说明如何使用该方法。 `drawBitmap(Bitmap bitmap, Rect src, Rect dst,...

    Android下利用Bitmap切割图片

    canvas.drawBitmap(croppedBitmap, 0, 0, null); // 添加其他图形或文字绘制... // 保存到文件或进行其他操作... ``` 在实际应用中,我们可能需要根据需求动态调整图片大小或比例,这时可以使用Bitmap....

    android中对Bitmap图片设置任意角为圆角

    首先,我们需要创建一个圆形Bitmap作为裁剪模板,然后使用Canvas的drawBitmap方法,结合Matrix的postRotate操作,将原Bitmap按照指定角度旋转后绘制到圆形Bitmap上。这样,超出圆形边界的图像部分会被裁剪掉,从而...

    Android印章图像绘制

    7. **绘制图案**:如果有特定的图案,可以使用`Canvas.drawBitmap()`或`Canvas.drawPath()`来绘制。 8. **保存图像**:如果你需要将印章保存为图片文件,可以使用`Bitmap.compress()`方法。 在`SealTest`项目中,...

    android 绘制图像

    使用`Canvas.drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)`方法,可以将Bitmap绘制到Canvas的指定位置。Bitmap可以通过资源ID、文件路径或者直接从内存中创建。 Android提供了Paint对象,它包含了...

    android 画图 bitmap drawable canvas paint

    在Canvas上绘制时,将Paint对象作为参数传递给绘制方法,如canvas.drawBitmap(Bitmap, x, y, Paint)。 Android的图形绘制是一个灵活且强大的系统,允许开发者通过组合使用Bitmap、Drawable、Canvas和Paint来创建...

    Android高级应用源码-Android的graphics绘制了印章图像.zip

    Canvas提供了如`drawBitmap()`、`drawRect()`、`drawCircle()`等方法来在Bitmap上绘制图形。 2. **Paint对象**:在Canvas上绘制图形时,Paint对象扮演着重要角色。Paint包含了绘制样式(颜色、线宽、阴影效果等)和...

    Android-AndroidDraw一个Android绘画View视图

    例如,我们可以使用`drawRect()`, `drawCircle()`, `drawLine()`等方法来绘制基本图形,以及`drawBitmap()`和`drawText()`来绘制图像和文字。 3. **Paint对象**: Paint对象负责定义绘制时的颜色、样式、字体等...

    Android Drawable Bitmap 相互转换

    在Android开发中,Drawable和Bitmap是两种常用的图像资源类型,它们各有特点且在不同场景下有不同的优势。了解和掌握它们之间的相互转换对于优化性能和提高用户体验至关重要。本篇将详细介绍如何在Android中进行...

    Android开发实现去除bitmap无用白色边框的方法示例

    Bitmap类提供了对bitmap的操作方法,而Canvas类提供了图像的绘制方法。 在实例中,使用了一个工具类BitmapDeleteNoUseSpaceUtil,该工具类提供了去除bitmap无用白色边框的方法。该方法首先将bitmap灰度化,然后将...

    Android图像介绍-Bitmap常用操作

    绘制Bitmap通常在Canvas上进行,可以使用`canvas.drawBitmap(Bitmap bitmap, float left, float top, Paint paint)`或`canvas.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)`。Paint对象允许设置绘制样式...

    Android图形图像处理技术研究.pdf

    绘制几何图形可以使用Canvas类提供的方法,绘制文本可以使用drawText()和drawPosText()方法,绘制路径可以使用android.graphics.Path类来实现,绘制图片可以使用Canvas类提供的drawBitmap()方法。 4. 动画技术 ...

    Android-使用Matrix对Bitmap进行处理

    通过Canvas的drawBitmap方法,我们可以指定Matrix参数,让Canvas使用这个变换矩阵来绘制Bitmap。 总的来说,Android的Matrix类为我们提供了强大的图像变换能力,可以灵活地处理Bitmap。在进行图像处理时,理解...

    android_draw.rar_android_android draw

    2. Bitmap:Bitmap是Android中的像素数据容器,用于存储图像。我们可以通过BitmapFactory类解析图片资源或从内存中获取Bitmap,然后在Canvas上进行绘制。 三、Path与Matrix 1. Path:Path对象用于创建和操作复杂的...

    Android 在Canvas指定区域绘制图片

    总之,Android的Canvas提供了强大的图像绘制能力,通过灵活运用各种方法,开发者可以实现丰富的视觉效果和交互体验。在指定区域内绘制图片只是Canvas功能的冰山一角,深入了解和熟练掌握Canvas的使用,将极大地提升...

    Android实现Bitmap位图旋转效果

    4. **绘制旋转后的Bitmap**:在`onDraw()`方法中,使用`Canvas`对象的`drawBitmap()`方法将旋转后的位图绘制到屏幕上。这里,将旋转后的位图放置在坐标(0, 200)处,以便与原始位图进行对比: ```java canvas.draw...

    Android多媒体学习之实现图像的编辑和合成

    例如,使用` drawBitmap() `绘制Bitmap,` drawRect() `绘制矩形,` drawText() `绘制文字等。Paint类则可以设置线条颜色、填充样式、抗锯齿效果等。 4. **图像裁剪**:可以使用` Bitmap.createBitmap() `结合...

    Android图形与图像处理

    通过Canvas提供的drawXXX方法(如drawRect、drawCircle、drawBitmap等)结合Paint的设置,可以实现丰富的2D图形绘制。 2. Bitmap:Bitmap是Android中用于存储像素数据的对象,可以进行图像加载、显示、裁剪、旋转、...

Global site tag (gtag.js) - Google Analytics