Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android拖放/动画_Java_Android - Fatal编程技术网

Java Android拖放/动画

Java Android拖放/动画,java,android,Java,Android,我想制作一个可以拖动图像(并播放一点动画)的页面 所以我正在做一些事情(我认为这并不理想,所以我需要你的帮助): 我的代码: ButtonIMG = BitmapFactory.decodeResource(getResources(), R.drawable.ButtonIMG ); Canvas c = null; while (true) { if (!holder.getSurface().isValid()) { continue; } if (

我想制作一个可以拖动图像(并播放一点动画)的页面

所以我正在做一些事情(我认为这并不理想,所以我需要你的帮助):

我的代码:

ButtonIMG = BitmapFactory.decodeResource(getResources(), R.drawable.ButtonIMG );
Canvas c = null;
while (true) {
    if (!holder.getSurface().isValid()) {
        continue;
    }
    if (gifCounter<10){
        animataion = BitmapFactory.decodeResource(getResources(), R.drawable.animataion1);
        gifCounter++;
    }
    if (gifCounter<20 && gifCounter>=10){
        animataion = BitmapFactory.decodeResource(getResources(), R.drawable.animataion2);
        gifCounter++;
    }
    if (gifCounter<30 && gifCounter>=20){
        animataion = BitmapFactory.decodeResource(getResources(), R.drawable.animataion3);
        gifCounter++;
    }
    if (gifCounter>=30){
        gifCounter=0;
    }
    c = holder.lockCanvas();
    c.drawARGB(255, 220, 220, 220);
    c.drawBitmap(ButtonIMG, x, y, null);
    c.drawBitmap(animataion, 100, 100, null);
}

我觉得不太理想
你想说什么?错误?没有阻力?没有胺化?@vini-效果很好,但我认为这个一直在画屏幕的循环可能会浪费资源。我可以在x,y位置添加一个img吗?当我调用一个函数时,我可以改变它的位置吗?你的图像是否在你拖动的地方画满了画布?您正在为拖动事件清除画布。图像是画布的一小部分,它绘制的每个循环都是c.drawARGB(255、220、220、220)-因此它正在清除画布。。。
public boolean onTouch(View v, MotionEvent me){
    switch (me.getAction()) {
        case MotionEvent.ACTION_DOWN:
            x = me.getX();
            y = me.getY();
            break;
    }
}