createBitmap方法能够截取源位图不同位置的块,实现游戏背景的移动

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(new MyView(MainActivity.this));

}

class MyView extends View{

//背景图实际高度

final int BACK_HEIGHT=1700;

//背景图和飞机

private Bitmap back;

private Bitmap plane;

final int WIDTH=640,HEIGHT=880;

//Matrix实例用于控制缩放

private Matrix matrix=new Matrix();

//图片开始的Y坐标

private int StartY=BACK_HEIGHT-HEIGHT;

public MyView(Context context) {

super(context);

back=BitmapFactory.decodeResource(context.getResources(), R.drawable.back_img);

//获取窗口管理器

WindowManager windowManager=getWindowManager();

Display display=windowManager.getDefaultDisplay();

DisplayMetrics metrics=new DisplayMetrics();

display.getMetrics(metrics);

//获得屏幕宽度

float screenWidth=metrics.widthPixels;

//确定缩放比例

float scale=screenWidth/WIDTH;

matrix.setScale(scale, scale);

plane=BitmapFactory.decodeResource(context.getResources(), R.drawable.plane);

final Handler handler=new Handler(){

@Override

public void handleMessage(Message msg) {

if(msg.what==0x123){

//图片向上移动/回到初始状态

if(StartY<3){

StartY=BACK_HEIGHT-HEIGHT;

}else{

StartY-=3;

}

}

//通知VIew重绘(调用OnDraw方法)

invalidate();

}

};

//每100ms移动一次

new Timer().schedule(new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

handler.sendEmptyMessage(0x123);

}

}, 0,100);

}

@Override

protected void onDraw(Canvas canvas) {

//截取背景图的一段作为实际绘制的背景图

Bitmap bitmap2=Bitmap.createBitmap(back,0,StartY,WIDTH,HEIGHT,matrix,false);

canvas.drawBitmap(bitmap2, 0, 0,null);

canvas.drawBitmap(plane, 320,700, null);

}

}

android createbitmap设置背景色,Android createBitmap截取实现移动的游戏背景相关推荐

  1. android datepicker设置日期,Android DatePicker

    前言 话说日期时间选择控件许多项目都会用到,今天小可不才,也发一个自己写的日期选择控件 先上图 CC8V2$(JPZ`{WT42ICK7F}K.png demo.gif 1.首先自定义日期选择工具类 ...

  2. android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值

    http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...

  3. android 渐变的背景色,Android背景渐变xml

    使用shape的gradient属性实现渐变 效果图 线性渐变 圆形渐变 扫描渐变 线性渐变 在drawable文件夹下新建shape资源: 属性值 android:angle (必须是45的整数倍. ...

  4. android如何设置图标,Android APP如何设置显示图标

    一款APP的图标是它的脸面,颜值的重要性,不言而喻了.接下来,如何设置APP的图标? 步骤1.编辑 AndroidManifest.xml: package="test.applicatio ...

  5. android+动态设置权重,Android自适应布局(关于权重weight的使用技巧!)

    weight和weightSum Layout Weight LinearLayout also supports assigning a weight to individual children ...

  6. android自定义设置界面,Android开发之精仿QQ设置界面(自定义PreferenceActivity)

    Android开发之精仿QQ设置界面(自定义PreferenceActivity) 时间:2011-12-05 10:25:06 来源:Android开发者门户 作者: 今天,再给大家分享一下QQ设置 ...

  7. android 状态栏设置工具栏,Android状态栏工具

    参考了一些文章做了一些修改,变成了自己的工具类.其中有很多地方欠考虑,有待改进,欢迎路过的大佬给点建议. 经过前两篇的介绍我们对如何修改状态栏的效果有了大致的了解,本篇介绍一种使用更加简单的方式 设置 ...

  8. android imageview设置边框,android ImageView 添加边框

    有两种方法可以给ImageView添加边框,一种是通过xml文件配置shape.另一种是重写ImageView的ondraw方法,这里用第二中方法: package org.example.image ...

  9. android 代码设置圆角,Android中用Shape实现圆角和局部圆角

    本文讲解如何实现布局边框的部分圆角 大家可能都知道圆角实现其实很简单, 在drawable文件夹下新建xml文件加入以下代码 情景1: 四个角均为圆角 android:shape="rect ...

最新文章

  1. passwd文件详解
  2. 双鉴探测器是哪两种探测方式结合_火灾探测器、手动火灾探测器和自动火灾报警分类...
  3. Data Warehouse Hardware - DW硬件需求计算
  4. linux查看内核版本信息
  5. cognos数据源配置修改oracle,Cognos 新建数据源报错(原创)
  6. 反转字符串 不同方式
  7. 开源旅游网站系统排名
  8. java 农历公历转换_java 版本 农历 公历 转换
  9. 汇编软件MASM和调试工具DEBUG的使用
  10. 灌木修剪机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  11. vs2019无法启动程序 系统找不到指定文件
  12. 使用Certbot申请ssl证书
  13. DH密钥交换协议c语言,DH秘钥交换协议
  14. 湖南省银河计算机专修学院,湖南计算机专修学院
  15. 无感延迟智能降噪,一款无线蓝牙耳机体验分享,值得安利
  16. 利用SMTP协议实现邮件的发送(以163和qq邮箱为例)
  17. react学习之路(一)
  18. 2023年Android现代开发
  19. 发现4个神奇的软件,个个暗藏惊喜,不占内存亲测好评
  20. javascript根据id 取出元素的值

热门文章

  1. android相机固定方向,如何正确设置Android相机方向?
  2. [ZJOI2015]醉熏熏的幻想乡
  3. NBMA网络OSPF路由协议配置
  4. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. webp怎么转png?图片webp格式怎么转换?
  6. 计算机设备配备情况,计算机设备配置标准.doc
  7. rancher拉取harbor私有镜像失败,报错ImagePullBackOff: Back-off pulling image
  8. 计算机屏幕暗度怎么调,电脑屏幕亮度太亮怎么调暗一点
  9. 2015 Syrian Private Universities Collegiate Programming Contest 题解
  10. five86-2靶机渗透攻略