2012-10-15 38 views
0

我正在嘗試從url加載圖片並通過滑動來逐個顯示。我的刷卡代碼運行良好。現在我需要爲頁面放置頁眉和頁腳。android - 多點觸控操作

頁眉和頁腳需要在10秒內不可見,一旦用戶點擊屏幕,它必須重新出現,並且在接下來的10秒內它必須是不可見的。我創建了一個處理程序類來使可見和不可見。這兩個代碼似乎都是分開工作的,但是當我將所有代碼連接在一起時,滑動不起作用。

在我的佈局

我需要頁腳和頭將超過圖像視圖,所以我的XML文件如下

<FrameLayout> 
    <ImageView> </ImageView> 
    <RelativeLayout> 
     <RelativeLayout 
      android:layout_alignParentTop="true"> 
     </RelativeLayout> 
     <RelativeLayout 
      android:layout_alignParentBottom="true"> 
     </RelativeLayout> 
    </RelativeLayout> 
</FrameLayout> 

我onTouch行動是要如下

public boolean onTouchEvent(MotionEvent event) 
    { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) 
     { 
      System.out.println("Touch Down X:" + event.getX() + " Y:" + event.getY()); 
      hide_layout.setVisibility(View.VISIBLE); 
      return super.onTouchEvent(event); 
     } 
     else if (event.getAction() == MotionEvent.ACTION_UP) 
     { 
      System.out.println("Touch Up X:" + event.getX() + " Y:" + event.getY()); 
      startProgress(); 
      return super.onTouchEvent(event); 
     } 
     else if (gestureDetector.onTouchEvent(event)) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

startProgress ()是處理程序類,它使相對佈局再次不可見

public void startProgress() 
    { 
     Runnable runnable = new Runnable() 
     { 
      @Override 
      public void run() 
      { 
       try 
       { 
        Thread.sleep(2000); 
       } 
       catch (InterruptedException e) 
       { 
        e.printStackTrace(); 
       } 

       handler.post(new Runnable() 
       { 
        @Override 
        public void run() 
        { 
         hide_layout.setVisibility(View.INVISIBLE); 
        } 
       }); 
      } 
     }; 
     new Thread(runnable).start(); 
    } 

回答

0

您需要提供s青梅更多的信息,以使人們有可能找到怎麼回事錯誤:

  • 什麼是做startProgress()方法
  • 你有運動事件(或點擊)在頁眉和/或頁腳

處理作爲關注的一般要點,請記住,Android正在提供動作事件以查看層次結構,從最後一個添加和移動的sequetialy開始,直到一個消耗它(返回true)或直到添加第一個視圖。

因此,在您的佈局中,作爲頁腳是最後添加的視圖,它將是第一個接收動作事件,接着是標題,並且只有在它傳遞到imageView之後(如果沒有消耗之前)。

+0

我在我的問題中加入了startProgress()方法.... –

+0

您沒有回答我上面提到的第二點。嘗試在你的'startProgress()'中使用'hide_layout.setVisibility(View.GONE);'。這將從接收運動證據的視圖中移除頁眉和頁腳。 – Luis

+0

我有頁眉和頁腳的運動事件。可見性消失也不起作用。一旦佈局消失,再次用戶觸摸我想使其可見,在刷卡我需要加載下一個圖像。只有觸摸動作正在發生.... –