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) ...
随机推荐
- SharePoint 2010 中创建超链接到Pop-Up对话框
SharePoint 2010 中创建超链接到Pop-Up对话框 SharePoint 2010 推出了新式的带有阴影的弹出对话框,你感觉怎么样?我感觉倒是挺酷的.这样少打开了一个页面 ...
- C# .net基于Http实现web server(web服务)
原文:C# .net基于Http实现web server(web服务) 什么是 web server? 百度百科是这么解释的: Web Server中文名称叫网页服务器或web服务器.WEB服务器也 ...
- CSS3实现Tooltip提示框飞入飞出动画
原文:CSS3实现Tooltip提示框飞入飞出动画 我们见过很多利用背景图片制作的Tooltip提示框,但是缺点是扩展比较麻烦,要经常改动图片.还有就是利用多层CSS的叠加实现,但是效果比较生硬,外观 ...
- 【核心研究】消息队列_MessageQueue
消息队列排队过程中的消息.这第一条消息将首先被处理.但假设消息本身指定要处理的时间.我们必须等待,直到时间的消息处理能力.新闻MessageQueue正在使用Message类的表示,队列中的邮件保存结 ...
- zoj 3537 Cake (凸包确定+间隔dp)
Cake Time Limit: 1 Second Memory Limit: 32768 KB You want to hold a party. Here's a polygon-sha ...
- 关于通过id查询记录的一些总结
最近在做一个oa系统,简化了账号的设置,列名均为id,类型均为varchar:有的表将id设置成了主键,有的表没有设置成主键. 通过举例说明通过id查询的一些问题. 之前登陆的时候,账号001-007 ...
- android activity 后的形式 藏
activity 希望的形式 于AndroidManifest.xml 建立 theme 属性 <activity android:name="zicox.u ...
- 两种计算和输出n内5要么9除尽互惠
#include<stdio.h> int main() { int i=0,n=0; float fSum=0; scanf("%d", &n); for ( ...
- 【转】Appium测试安卓Launcher以滑动窗体获得目标应用
原文地址:http://blog.csdn.net/zhubaitian/article/details/39755553 所谓Launcher,指的是安卓的桌面管理程序,所有的应用图标都放在laun ...
- MAC 命令行工具(Command Line Tools)安装
不过升级后安装命令行工具(Command Line Tools)时发现官网没有clt的下载安装包了,原来改了,使用命令在线安装. 打开终端,输入命令:xcode-select --install 选择 ...