Java Android设置标签文本的自定义图像
我现在有一个计时器,可以滴答滴答地改变标签,倒数秒数。 是可能的,如果是,我如何更改和图像在和图像框为每个自定义值,例如 标签=1 imagebox1=1.jpg 标签=2图像框1=2.jpgJava Android设置标签文本的自定义图像,java,android,eclipse,image,Java,Android,Eclipse,Image,我现在有一个计时器,可以滴答滴答地改变标签,倒数秒数。 是可能的,如果是,我如何更改和图像在和图像框为每个自定义值,例如 标签=1 imagebox1=1.jpg 标签=2图像框1=2.jpg 还是更容易去掉计时器的刻度值?我会制作一个精灵类。然后,我将使用来自ticker的值循环浏览我需要的各种位图。但如果这些图像足够小,分辨率足够高,则将它们组合在一张图像中,并使用一个各向异性透镜 import android.graphics.*; public class AniSprite { p
还是更容易去掉计时器的刻度值?我会制作一个精灵类。然后,我将使用来自ticker的值循环浏览我需要的各种位图。但如果这些图像足够小,分辨率足够高,则将它们组合在一张图像中,并使用一个各向异性透镜
import android.graphics.*;
public class AniSprite {
public RectF target;
public Rect source;
public Bitmap bitmap;
public int width;
public int height;
public float posx;
public float posy;
public int frames;
public int curframe = 0;
public AniSprite(Bitmap bitmap, float posx, float posy, int width, int height, int frames) {
this.drawview = drawview;
this.bitmap = bitmap;
this.width = width;
this.height = height;
this.posx = posx;
this.posy = posy;
this.frames = frames;
source = new Rect(curframe * width, 0, (curframe * width) + width, height);
target = new RectF(posx, posy, posx + (width), posy + (height));
}
public void animate() {
curframe++;
if(curframe >= frames){
curframe = 0;
}
source = new Rect(curframe, 0, (curframe) + width, height);
}
public void setSourceRect(Rect rect) {
source = rect;
curframe = rect.right/width;
}
public void ChangePos(float posx, float posy) {
this.posx = posx;
this.posy = posy;
source = new Rect(curframe * width, 0, (curframe * width) + width, height);
target = new RectF(posx, posy, posx + (width), posy + (height));
}
}
所以在这节课上,我没有循环浏览不同的位图,而是制作了一个大位图,每个动画帧都是一个接一个的。(使用photoshop)这些参数指示屏幕上x和y的位置、帧的宽度和高度(因此每个图像)以及帧数
执行AniSprite.animate()将目标切换到新帧,因此您可以将精灵绘制为
canvas.drawBitmap(sprite.bitmap, sprite.source, sprite.target, null);