Android ImageView未按我所需移动

Android ImageView未按我所需移动,android,imageview,ontouchlistener,Android,Imageview,Ontouchlistener,我正在实现onTouchListener的演示。因为我想动态生成imageView,并在整个frameLayout中移动它。我完成了imageView创建,还实现了onTouchListener,但是imageView没有按照我的意愿移动。下面是我的代码 package your.packagename; import android.app.Activity; import android.graphics.Point; import android.os.Bundle; import an

我正在实现onTouchListener的演示。因为我想动态生成
imageView
,并在整个
frameLayout
中移动它。我完成了
imageView
创建,还实现了
onTouchListener
,但是
imageView
没有按照我的意愿移动。下面是我的代码

package your.packagename;

import android.app.Activity;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class MainActivity extends Activity {
    Button b1;
    Button b2;
    FrameLayout f;
    ImageView imageview;
    int windowwidth;
    int windowheight;
    private android.widget.FrameLayout.LayoutParams layoutParams;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1 = (Button) findViewById(R.id.button1);
        b2 = (Button) findViewById(R.id.button2);
        f = (FrameLayout) findViewById(R.id.framelayout);
        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        windowwidth = size.x;
        windowheight = size.y;
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageview = new ImageView(getBaseContext());
                imageview.setId(1);
                registerForContextMenu(imageview);
                imageview.setBackgroundResource(R.drawable.ic_launcher);
                FrameLayout.LayoutParams ivparam = new FrameLayout.LayoutParams(100, 100);
                imageview.setLayoutParams(ivparam);
                f.addView(imageview);
                imageview.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        layoutParams = (FrameLayout.LayoutParams) imageview.getLayoutParams();
                        switch (event.getAction()) {
                            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;
                                }
                                layoutParams.leftMargin = x_cord - 25;
                                layoutParams.topMargin = y_cord - 25;
                                imageview.setLayoutParams(layoutParams);
                                break;
                            default:
                                break;
                        }
                        return true;
                    }
                });
            }
        });
    }
}

请告诉我我做错了还是应该使用其他方法。

使用onDraw创建自定义视图和绘图比addView@Pankaj请你给我任何链接或例子,这将有助于我的演示..看看这是否有帮助,做进一步的研究:看看这是一个非常好的例子,移动和旋转图像视图。根据需要修改代码:)