0

我對Android比較陌生。在第一次觸摸時放大TextView,在第二次觸摸時縮小比例

描述 -

我有一個LinearLayoutTextView的在裏面。 我正在動態添加TextView

當我觸摸TextView,我希望它ScaleUp,當我再次觸摸同一TextView我希望它ScaleDown

我的問題是 -

  1. TextViewscaled up和任何其他TextViewtouched。較舊的TextView應該是scale down而新的touchedTextView應該是scale up
  2. 當我觸摸scaled upTextView那麼這個TextView應該縮小。

這是我曾嘗試

我有2首個XML。 1爲了擴大規模

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale 
    android:fromXScale="1.0" 
    android:fromYScale="1.0" 
    android:toXScale="3.0" 
    android:toYScale="3.0" > 
</scale> 

,另一個是分頻

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale 
    android:fromXScale="3.0" 
    android:fromYScale="3.0" 
    android:toXScale="1.0" 
    android:toYScale="1.0" > 
</scale> 

Activity類 -

myTextView.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        if (myTextView.getAnimation() == null) { 
         Animation a = AnimationUtils.loadAnimation(
           getBaseContext(), R.anim.scale_up); 
         a.setFillAfter(true); 
         v.startAnimation(a); 
        } else { 
         v.setOnTouchListener(new OnTouchListener() { 
          @Override 
          public boolean onTouch(View v1, 
            MotionEvent event) { 
           if (event.getAction() == MotionEvent.ACTION_DOWN) { 
            Animation a1 = AnimationUtils 
              .loadAnimation(
                getBaseContext(), 
                R.anim.scale_down); 
            a1.setFillAfter(true); 
            v1.startAnimation(a1); 

           } 
           return true; 
          } 
         }); 
        } 
       } 
       return false; 
      } 

     }); 
+1

每當文本視圖被縮放時:存儲當前文本視圖/狀態的引用。每次發生新的觸摸事件時:檢查當前文本視圖的狀態,並根據您提供的用例採取適合您的行爲 – Tobrun

+0

謝謝,但問題是我無法存儲參考。我甚至嘗試在我的LinerLayout中添加一個TextView,並將TextView的可見性設置爲0,然後使用此隱藏TextView的高度和寬度與第一個匹配,如果內部OnTouch。仍然onTouch它總是進入其他部分。 – JHS

+1

通過使用setTag方法爲每個文本視圖提供一個id,現在您知道哪個textview是哪個..然後在它們中創建文本視圖和存儲狀態的集合..在每次觸摸時循環此collection並搜索正確的textview並進行適當事情與它。您應該重新考慮處理觸摸事件的實現。 – Tobrun

回答

1

使textviews和ST的集合礦石狀態..在每一次觸摸你循環這個集合和搜索正確的文本視圖,並做適當的事情。您還可以搜索這個集合,並檢查哪些文字瀏覽是放大或縮小的,因爲您自己正在管理這些狀態。

相關問題