0

通過使用手勢,我可以像這樣的圖像拖動嗎?我的意思是,不得不拖動作爲刻度線。所以必須使用onClickListener。執行完後,它應該能夠在顯示部分最終打開另一個屏幕。我怎麼能通過使用手勢來拖動它?

當我用我的手,我的意思是如果我把刻度線,那麼它應該能夠調用特定的方法。

我想使用手勢編寫代碼,它應該能夠執行或拖動,當我這樣做下面的圖像。在手勢中這些功能如何工作,我應該如何編寫代碼?

我怎麼能這樣做?有人可以建議我嗎? See this "Tick" image

回答

0

我相信你要求的東西是沿着this question。這裏是由prateek-raj提供的源代碼。順便提一下,雖然您提供的示例複選標記圖像很可愛,但Android不關心您的圖像是否爲球形圖案,複選標記或a squirrel holding a bazooka,因此以下代碼仍然適用。

package com.examples.Touchmoveimage; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.LinearLayout.LayoutParams; 

public class Touchmoveimage extends Activity { 

    int windowwidth; 
    int windowheight; 

    private LayoutParams layoutParams ; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    windowwidth = getWindowManager().getDefaultDisplay().getWidth(); 
    windowheight = getWindowManager().getDefaultDisplay().getHeight(); 
    final ImageView balls = (ImageView)findViewById(R.id.ball); 

    balls.setOnTouchListener(new View.OnTouchListener() { 

        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
         LayoutParams layoutParams = (LayoutParams) balls.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 - 75; 

                 balls.setLayoutParams(layoutParams); 
                 break; 
         default: 
                 break; 
         } 
          return true; 
        } 
      }); 
} 
} 

,解決你的問題,但並不完全全部。您還問,

它執行後,它應該能夠最後在顯示部分打開另一個屏幕 。

的答案會可能涉及創建一個Intent對象(在構造函數中定義的新的活動,並啓動它。有關於這個問題here一個很好的教程。它(交換活動的心臟)是要是這樣的:

Intent k = new Intent("com.example.ActivityYouWantToGoTo"); 
startActivity(k); 

你需要通過與創建新的活動相關聯的所有步驟(例如,不要忘記更新清單)。爲了使你的代碼做 (a)拖動複選框並(b)切換到新的活動,則需要結合上述概念不告訴我們你想在什麼情況下拖動對象或切換活動(例如拖動一次後?當它被拖到一個特定的位置?等等),但是您將要定義這些條件,然後在滿足時調用新的活動。

+0

這不是關於做複選標記手勢的問題,答案不能完全回答它嗎? – inteist

相關問題