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画图的更多相关文章
- Andriod中绘(画)图----Canvas的使用具体解释
转载请注明出处:http://blog.csdn.net/qinjuning 因为在网络上找到关于Canvas的使用都比較抽象,或许是我的逻辑思维不太好吧,总是感觉理解起来比較困难, 尤其是对 ...
- Android开发之画图的实现
Android开发之画图的实现 四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...
- Android中Bitmap,byte[],Drawable相互转化
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
- 【Android】[转] Android中Bitmap,byte[],Drawable相互转化
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
- Graphics 导出图片使用【这个主要是画图类图的使用,记录一下】
/// <summary> /// 导出信令流程矢量图 /// </summary> /// <param name="signalFlowInfos" ...
- Android中Bitmap和Drawable
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
- c#代码画图
说明:此示例代码在我做的一个项目中 不过还是可以学习一下 一:直角坐标系显示数据 先看效果图:
- 用Drawing画图如何不会消失
方法一:将事件放在form_Load中,在窗体中画图 1: protected void MainForm_Load(object sender,EventArgs e) 2: { 3: Init ...
- Android中Bitmap和Drawable,等相关内容
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
随机推荐
- twitter接口开发
前一阵子研究了下twitter接口,发现网上的资料不是很多.遂花了些心血,终于有所收获~ 现在有时间赶紧整理出来便于自己以后查阅,也想帮助有困难的同学们.废话不多说,现在就以最简洁的方式开始了.注意: ...
- 【剑指offer】数字数组中只出现一次(2)
转载请注明出处:http://blog.csdn.net/mmc_maodun/article/details/27800577 题目:一个int数组中有三个数字a.b.c仅仅出现一次,其它数字都出现 ...
- Delphi 3D Glscene安装
GLScene开源库Delphi基于提供OpenGL的3D框架.由GLScene组件,您可以轻松地创建和渲染你的3D幕后.令人奇怪的是,.对于这样一个很好的开源库.该网络无法找到完整的安装说明,甚至G ...
- DFS PKU 1562
简单地DFS Oil Deposits Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12801 Accepted: 6 ...
- 纯js客服插件集qq、旺旺、skype、百度hi、msn
原文 纯js客服插件集qq.旺旺.skype.百度hi.msn 客服插件,集qq.旺旺.skype.百度hi.msn 等 即时通讯工具,并可自己添加支持的通讯工具,极简主义,用法自己琢磨.我的博客 h ...
- POJ 3013 Big Christmas Tree(最短Dijkstra+优先级队列优化,SPFA)
POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA) ACM 题目地址:POJ 3013 题意: 圣诞树是由n个节点和e个边构成的,点编号1-n. ...
- hdu1286 寻找新朋友 (欧拉功能)
原标题:点击打开链接 关于欧拉函数的算法具体解说:点击打开链接 欧拉函数 1.欧拉函数是不全然积性函数. 2.欧拉函数p(x) = x * (p1 - 1) / p1 * (p2 - 1)/p2 * ...
- css3简单几步画一个乾坤图
原文:[原创]css3简单几步画一个乾坤图 效果如上,鼠标移上去会有动画. 代码如下非常简单: <html> <head> <style> .outer{heigh ...
- eclipese with gdbserver and Jlink configuration
最近的项目,很感动于linux和gdbserver内容,I think must write something to record it . 各位对不起,图片挂了.. Ok, at first I' ...
- javascript中类的属性研究
原文:javascript中类的属性研究 本篇文章主要针对javascript的属性进行分析,由于javascript是一种基于对象的语言,本身没有类的概念,所以对于javascript的类的定义有很 ...