我正在尝试在Android中移动一张图片,但我真的找不到一种方法来做到这一点。我已经使用了几种方法,但它们都没有真正起作用,这是我目前的代码
public class Tangram extends Activity implements OnTouchListener{
ImageView img;
int x=0,y=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.tangram);
img = (ImageView) findViewById(R.id.tangrampic1);
img.setOnTouchListener(this);
img.scrollBy(x, y);
}
public boolean onTouch(View v, MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
{
x++;
break;
}
case MotionEvent.ACTION_UP:
{
x--;
break;
}
}
return true;
}
}
有人知道如何移动物体吗?
答案 0 :(得分:0)
我会按以下方式进行: - 实现自己的观点 - 在此视图的ondraw方法中绘制图像(从offset 0/0开始) - onTouch移动偏移量并使视图无效
答案 1 :(得分:0)
你试过这个 -
surf.setOnTouchListener( new SurfaceView.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
case MotionEvent.ACTION_MOVE:
if( moving ){
final int x_new = (int)event.getX();
final int y_new = (int)event.getY();
mDrawTiles.draw( new DrawLogic(){
@Override
public void draw(Rect _surface) {
mTiles.setBounds(
x_new - mDrawWidth/2,
y_new - mDrawHeight/2,
x_new + mDrawWidth/2,
y_new + mDrawHeight/2);
}
});
}
并且,也请参考this。