0

我正在制作一个 android 应用程序,我想在其中将图像从一个单元格移动到另一个单元格。我正在关注这里的链接。问题是我正在让类扩展活动,同时扩展视图并在那里实现。见下文

我的课

  public class GameActivity extends Activity
    implements OnTouchListener

示例中的类

  public class TouchExampleView extends View    

它在 OnDraw() 方法上显示错误。我可以理解它是在视图类中定义的,但我该如何实现它。

4

1 回答 1

0

活动文件。

windowwidth = getWindowManager().getDefaultDisplay().getWidth();
windowheight = getWindowManager().getDefaultDisplay().getHeight();


tv1 = (ImageView)findViewById(R.id.image);
tv1.setOnTouchListener(new View.OnTouchListener() {         

@Override
public boolean onTouch(View v, MotionEvent event) {
    layoutParams1 = (RelativeLayout.LayoutParams) tv1.getLayoutParams();
    switch(event.getActionMasked())
    {
        case MotionEvent.ACTION_DOWN:
            break;
        case MotionEvent.ACTION_MOVE:
            int x_cord = (int) event.getRawX();
            int y_cord = (int) event.getRawY();
            if (x_cord > windowwidth) {
                x_cord = windowwidth;
            }
            if (y_cord > windowheight) {
                y_cord = windowheight;
            }
            layoutParams1.leftMargin = x_cord - 25;
            layoutParams1.topMargin = y_cord - 75;
            tv1.setLayoutParams(layoutParams1);
            break;
        default:
            break;
    }
    return true;
}
});

tv2 = (ImageView)findViewById(R.id.image1);
tv2.setOnTouchListener(new View.OnTouchListener() {         

@Override
public boolean onTouch(View v, MotionEvent event) {
    layoutParams2 = (RelativeLayout.LayoutParams) tv2.getLayoutParams();
    switch(event.getActionMasked())
    {
        case MotionEvent.ACTION_DOWN:
            break;
        case MotionEvent.ACTION_MOVE:
            int x_cord = (int) event.getRawX();
            int y_cord = (int) event.getRawY();
            if (x_cord > windowwidth) {
                x_cord = windowwidth;
            }
            if (y_cord > windowheight) {
                y_cord = windowheight;
            }
            layoutParams2.leftMargin = x_cord - 25;
            layoutParams2.topMargin = y_cord - 75;
            tv2.setLayoutParams(layoutParams2);
            break;
        default:
            break;
     }
     return true;
  }
});

XML 文件:-

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 <ImageView 
    android:layout_width="100dp" 
    android:layout_height="100dp"
    android:id="@+id/imageview1" 
    android:src="@drawable/image1"  />    
 <ImageView
    android:layout_width="100sp" 
    android:layout_height="100sp" 
    android:id="@+id/imageview2"
    android:src="@drawable/image2"   />             
</RelativeLayout>

看到这个

Android 在屏幕上拖放图像?

于 2012-08-16T08:55:58.503 回答