BitMap画图

package com.example.examples_05_07;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Rect;

import android.graphics.drawable.BitmapDrawable;

import android.view.View;

public class GameView extends View implements Runnable {

Bitmap mBitQQ;//声明一个位图

Bitmap mBitDestTop;//声明一个位图

int miDTX=0;

public GameView(Context context) {

super(context);

// TODO Auto-generated constructor stub

miDTX=0;

/*从资源文件转载图片*/

//getResources()->得到Resources

//getDrawable()->得到资源中的Drawable对象,参数为资源索引ID

//getBitmap()->得到Bitmap

//得到位图,将得到的图片存储在位图中

mBitQQ=((BitmapDrawable)getResources().getDrawable(R.drawable.qq)).getBitmap();

mBitDestTop=((BitmapDrawable)getResources().getDrawable(R.drawable.desktop)).getBitmap();

//开启线程

new Thread(this).start();

}

public void onDraw(Canvas canvas) {

super.onDraw(canvas);

//清屏效果

canvas.drawColor(Color.BLACK);

//在屏幕0,0处绘制该图像

GameView.drawImage(canvas, mBitQQ, 0, 0);

/*在指定位置区域进行裁剪*/

//getWidth()->得到图片的宽度

//getHeight()->得到图片的高度

GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDestTop.getHeight()/2,

0, 0);

}

public void run() {

// TODO Auto-generated method stub

while (!Thread.currentThread().isInterrupted()) {

try {

Thread.sleep(100);

} catch (Exception e) {

// TODO: handle exception

Thread.currentThread().interrupt();

}

postInvalidate();

}

}

/**--------------------------------------

* 绘制图片

* @param x:屏幕x坐标

* @param y:屏幕y坐标

* @param w:要绘制图片的宽度

* @param h:要绘制图片的高度

* @param bx:图片上的x坐标

* @param by:图片上的y坐标

* */

public static void drawImage(Canvas canvas,Bitmap bitmap,int x,int y,int w,int h,int bx,int by) {

Rect src=new  Rect();//图片裁剪区域

Rect dest=new Rect();//屏幕裁剪区域

//设置图片裁剪区域

src.left=bx;

src.top=by;

src.right=bx+w;

src.bottom=by+h;

//设置屏幕裁剪区域

dest.left=x;

dest.top=y;

dest.right=x+w;

dest.bottom=y+h;

//绘制图片

canvas.drawBitmap(bitmap, src, dest, null);

src=null;

dest=null;

}

/**

* 绘制一个Bitmap

* @param bitmap:要绘制的图片

* @param x:屏幕上的x坐标

* @param y:屏幕上的y坐标

* */

public static void drawImage(Canvas canvas,Bitmap bitmap,int x,int y) {

canvas.drawBitmap(bitmap, x, y, null);

}

}

package com.example.examples_05_07;

import android.os.Bundle;

import android.R.integer;

import android.app.Activity;

import android.view.KeyEvent;

import android.view.Menu;

import android.view.MotionEvent;

public class MainActivity extends Activity {

GameView mgameView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mgameView=new GameView(this);

setContentView(mgameView);

}

public boolean onKeyDown(int keyCode,KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT)

{

if(mgameView.miDTX>0)

{

mgameView.miDTX--;

}

}

else if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {

if(mgameView.miDTX+mgameView.mBitDestTop.getWidth()<320)

{

mgameView.miDTX+=10;

}

}

return true;

}

//触笔事件

public boolean onTouchEvent(MotionEvent event) {

return true;

}

}

BitMap画图,布布扣,bubuko.com

时间: 2024-10-20 16:05:53

BitMap画图的相关文章

Android中用Bitmap画图预览,视频图像分辨率是320x240(4:3),手机分辨率是540x960(9:16),图像被拉伸怎么办?

问题描述 使用V4L2进行视频采集,采集到的视频数据分辨率为320x240(4:3),使用Canvas,drawBitmap方式在Android设备上预览图像 Android设备分辨率为 540x960(9:16),所以全屏预览时图像被拉伸,这种问题如何解决? 没思路啊,哪位大神指导指导!! 下面是画图像的代码,大神们帮忙看看 public void run() { //获取屏幕信息 DisplayMetrics dm = new DisplayMetrics(); getWindowManag

[C#绘图]对图像重新着色

概述: 重新着色是调整图像颜色的过程. 重新着色包括:将一种颜色更改为另一种颜色,调整某种颜色相对于另一种颜色的亮度,调整所有颜色的亮度或对比度,以及增加颜色的灰度. 如何:使用颜色矩阵对单色进行变换 GDI+ 提供用于存储和操作图像的 Image 和 Bitmap 类.Image 和 Bitmap 对象用一个 32 位数字存储每个像素的颜色:红.绿.蓝和 Alpha 各 8 位. 这四个分量的值都是 0 到 255,其中 0 表示没有亮度,255 表示最大亮度. alpha 分量指定颜色的透明

Andriod中绘(画)图----Canvas的使用具体解释

转载请注明出处:http://blog.csdn.net/qinjuning     因为在网络上找到关于Canvas的使用都比較抽象,或许是我的逻辑思维不太好吧,总是感觉理解起来比較困难, 尤其是对save()和restore()方法的使用.本篇文章的内容就是对Canvas的使用进行一下总结,包含它的两种不同的使用 情节和它的一些方法进行一下说明. 1  Bitmap,能够来自资源/文件,也能够在程序中创建,实际上的功能相当于图片的存储空间: 2  Canvas,紧密与Bitmap联系,把Bi

Android新手入门2016(16)--画图

本文来自肥宝传说之路,引用必须注明出处! 画图设计到图片的格式,有空可以看看图片资源各种格式.了解一下图片格式,对学习有用的.而且我面试别人的时候也很喜欢问这个问题,哈哈. 先看个图. 直接看代码吧,注释很详细了. activity_hello_world.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

Android中android.graphics下面的绘制图形类Canvas,Paint,Bitmap,Drawable

1.概念区别: 很多网友刚刚开始学习Android平台,对于Drawable.Bitmap.Canvas和Paint它们之间的概念不是很清楚, 其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap.Canvas相关的都有所变化. 首先让我们理解下Android平台中的显示类是View,但是还提供了底层图形类android.graphics,今天所说的这些均为graphics底层图形接口. Bitmap - 称作位图,一般位图的文件格式后缀为b

Bitmap,byte[],Drawable相互转化

1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2.Canvas画布,绘图的目的区域,用于绘图 3.Bitmap位图,用于图的处理 4.Matrix矩阵 1.从资源中获取Bitmap 1 Resources res = getResources();2 Bitmap bmp = BitmapFactory.decode

C#画图

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; namespace BitMap { /// <summary> /// Image 的摘要说明 /// </summary> public class Image : IHttpHandler { public void ProcessRequest(HttpConte

Android中Bitmap和Drawable

一.相关概念1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2.Canvas画布,绘图的目的区域,用于绘图3.Bitmap位图,用于图的处理4.Matrix矩阵 二.Bitmap 1.从资源中获取Bitmap Java代码   Resources res = getResources(); Bitmap bmp = Bi

C#画图——Graphics

C#要实现简单的画图功能可以利用Graphics这个类,要使用Graphics必需using命名空间System.Drawing(此名明空间下都是关于图形的操作).首先创建画布: Bitmap bmp = new Bitmap(1000, 800); Graphics g = Graphics.FromImage(bmp); 清除画布的背景色,并且指定颜色填充: g.Clear(Color.White); 开始画图: //画矩形 g.DrawRectangle(new Pen(Color.Red