初学Android,请高手指点:有一张图片:   width:64  ; height:16;现设定 一帧的 width:16 ; height:16;这样可以将原图片划分成: 4帧当我取到每一帧的顶点坐标后,怎么根据顶点坐标去表示每一帧的图片呢?例如可不可以利用顶点坐标将某一帧的图片变为Bitmap对象呢?因为我想把某一帧单独绘制在屏幕上

解决方案 »

  1.   

    用Bitmap类的createBitmap (Bitmap source, int x, int y, int width, int height)方法把每一帧的图片生成一个bitmap来使用
      

  2.   

    谢谢2楼,分给你啦。
    另外我还有2个问题: 
    1、Bitmap的getWidth()和getHeight()方法为什么取到的值是实际值的2倍呢,我的图片分辨率 128*32  但是取到的值是256*64 原png图片我放在drawable-ldpi下的
    2、取第一个帧的时候 顶点坐标的值是固定的(0,0)吗,是根据什么来定的呢?
      

  3.   

    比如原图为bitmapOld(宽度为64,高度为16)
    现在要将bitmapOld按宽度等比分成4份,bitmapNew01(宽度为16,高度为16)
    bitmapNew02(宽度为16,高度为16)
    bitmapNew03(宽度为16,高度为16)
    bitmapNew04(宽度为16,高度为16)

    Bitmap bitmapNew01 = bitmapOld.createBitmap(bitmapOld, 
    *bitmapOld.getWidth()/4,
    0, 
    bitmapOld.getWidth()/4, 
    bitmapOld.getHeight());
    要解释的就是,第一个参数就是原图bitmapOld,
      第二、三个参数X、Y坐标,就是以原图的左顶点为原点的坐标(0,0)
      第四个参数就是生成新bitmap的宽度
      第五个参数就是生成新bitmap的高度
    以此类推;
    Bitmap bitmapNew02 = bitmapOld.createBitmap(bitmapOld, 1*bitmapOld.getWidth()/4, 0, bitmapOld.getWidth()/4, bitmapOld.getHeight());
    Bitmap bitmapNew03 = bitmapOld.createBitmap(bitmapOld, 2*bitmapOld.getWidth()/4, 0, bitmapOld.getWidth()/4, bitmapOld.getHeight());
    Bitmap bitmapNew04 = bitmapOld.createBitmap(bitmapOld, 3*bitmapOld.getWidth()/4, 0, bitmapOld.getWidth()/4, bitmapOld.getHeight());最后:bitmapNew01,bitmapNew02,bitmapNew03,bitmapNew04就是你想要的图片