1

画像をドラッグすることはできますが、画像をドラッグすると画像のサイズが変化し続けます。画像サイズは固定ではありません。どこが間違っているか教えてください。画像をドラッグすると、特定の画像のサイズが変わり続けます。レイアウト パラメータに関する問題がありますが、修正できません。

私のドラッグエリアのxml。

<LinearLayout
          android:id="@+id/vg1"
    android:layout_width="fill_parent"
    android:layout_height="400dp"
    android:gravity="center"
    android:weightSum="1"
    android:layout_alignTop="@+id/scrollView1"
    android:layout_toLeftOf="@+id/scrollView2"
    android:layout_toRightOf="@+id/scrollView1"
    android:gravity="right"
    android:background="@drawable/shape" >


    <ImageView
        android:id="@+id/dragimg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:src="@drawable/log_off_button" />

</LinearLayout>

私のドラッグ画像コード:

        OnTouchListener dragt = new OnTouchListener()
    {
    @Override       
    public boolean onTouch(View v, MotionEvent event)
    {

         LinearLayout.LayoutParams par = new LinearLayout.LayoutParams(v.getLayoutParams());
         v.setLayoutParams(par);  
    switch(v.getId())
    {//What is being touched                                    
    case R.id.dragimg:      
    {//Which action is being taken      
    switch(event.getAction())           
    {
    case MotionEvent.ACTION_MOVE:           
    {       
        par.topMargin = (int)event.getRawY() + windowheight - (vg.getHeight()/2);       
        par.leftMargin = (int) ((int)event.getRawX() +windowwidth - (vg.getWidth()));

    v.setLayoutParams(par);
    break;  
    }//inner case MOVE
    case MotionEvent.ACTION_UP:                     
    {

        par.topMargin = (int)event.getRawY()+ windowheight - (vg.getHeight()/2);
        par.leftMargin = (int) ((int)event.getRawX() + windowwidth - (vg.getWidth()));
    v.setLayoutParams(par);
    break;
    }//inner case UP
    case MotionEvent.ACTION_DOWN:
    {
//  par.height = 60;
//  par.width = 60;
    v.setLayoutParams(par);
    break;          
    }
    }
    break;
    }
    }
    return true;        
    }
    };

どこが間違っているか、またはこれを行うより良い方法を教えてください。ドラッグ アンド ドロップできる画像は 1 つだけです。

4

1 に答える 1