我在學校製作一個項目,並且在疊加的ImageView中有這個小角色(目標是爲那些知道它是什麼的人創建一個Shimeji)。 通過屏幕拖動ImageView時,我遇到了問題。當拖動屏幕時切斷ImageView
。
所以在ImageView的設置圖像移動,但它是由ImageView的切斷(至少我猜,因爲只要我移動它圍繞它開始被切斷)
這裏是我的xml :
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/Layout">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/View"
android:adjustViewBounds="true"
/>
</FrameLayout>
然後我我把它添加到屏幕的方式:
public void onCreate() {
super.onCreate();
view = new ImageView(this);
view.setBackgroundResource(R.drawable.idle);
idleanimation = (AnimationDrawable)view.getBackground();
idleanimation.start();
view.setOnClickListener(new Click());
view.setOnLongClickListener(new drag());
li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
wm = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.START;
myview = li.inflate(R.layout.playground, null);
wm.addView(view, params);
}
然後我的方式將它拖到身邊屏幕:
private class drag implements View.OnLongClickListener {
float x,y;
@Override
public boolean onLongClick(View v) {
view.setOnTouchListener(new action());
return false;
}
private class action implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
return true;
case MotionEvent.ACTION_MOVE:
x=event.getX();
y=event.getY();
view.setX(x-81);
view.setY(y - 100);
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
}
}
我很樂意獲得一些幫助,以瞭解這一點。
不好意思,這不會改變任何東西... – ZackStrife
同樣的問題在這裏,實際上有什麼建議? –
@SérgioS.Filho問題的類型 –