0

我正在迈出位图移动的第一步。从互联网上的位,我创建了这个简单的代码。位图在屏幕上从左上角移动到右上角,它离开屏幕并在 0,0 处重新打开。我想要做的是添加一个按钮或方法来手动移动图像。我,我只使用这个单一的类,并注意到它不使用 main_activity xml 或者是吗?如果有人可以向我展示这 1 个方向,我可以复制其他方向。如果您想添加代码,那么不会离开屏幕将是一个奖励

public class MainActivity extends Activity {    
int x=0;
int y=0;
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(new myView(this));  }

private class myView extends View{
public myView(Context context) {
super(context);  }

@Override
protected void onDraw(Canvas canvas) {   
Bitmap myBitmap =    BitmapFactory.decodeResource(getResources(),  R.drawable.richinch);

if (x < canvas.getWidth()){x +=10;}
else {x=0;}   
    canvas.drawBitmap(myBitmap, x, y, null);

       invalidate();

  }}}

我已将此添加到代码中并阅读了一些关于 OnTouch 侦听器的内容。我将如何将它添加到区域或矩形,这将非常有帮助,如果按钮 id 通过 onclick 知道,我将使用位图作为按钮,我正在尝试制作 2 个位图按钮以暂时将图像左右移动.最终所有方向。请使用我正在使用的名称,除非创建峰会,例如 int 等

 Paint green = new Paint();
 green.setColor(Color.RED);
 green.setStyle(Paint.Style.FILL);
 ////creating the shape////         
 Rect rect= new Rect();
 rect.set(0, 0,x+50, x+50);
 canvas.drawRect(rect,green);
 Region region = new Region(0, 950, 100, 1030);
4

2 回答 2

0

您没有使用任何 xml

这部分在这里: setContentView(new myView(this)); 是您添加 xml 文件的地方 setContentView(R.layout.mainxml)

如果您想通过手指触摸来移动位图,请查看这些教程。他们正是这样做的,您将学习使用 SurfaceView

http://www.eis4u.com/2012/02/13/playing-with-graphics-in-android-part-i/ http://www.eis4u.com/2012/02/13/playing-with-图形-in-android-part-ii/ http://www.eis4u.com/2012/02/13/playing-with-graphics-in-android-part-iii/

于 2013-11-14T17:37:19.563 回答
0

我不确定您想要实现什么,但如果您想制作动画,请避免使用 onDraw() 并让ObjectAnimator为您“移动”。这是关于它的详细教程

您需要的最少代码:

ObjectAnimator animation = ObjectAnimator.ofFloat(yourObject, "x", xDest);
animation.setDuration(500); // milliseconds
animation.start();
于 2013-11-14T17:35:30.437 回答