0
我對Android比較陌生。在第一次觸摸時放大TextView,在第二次觸摸時縮小比例
描述 -
我有一個LinearLayout
與TextView
的在裏面。 我正在動態添加TextView
。
當我觸摸TextView
,我希望它ScaleUp
,當我再次觸摸同一TextView
我希望它ScaleDown
。
我的問題是 -
- 當
TextView
是scaled up
和任何其他TextView
是touched
。較舊的TextView
應該是scale down
而新的touched
TextView
應該是scale up
。 - 當我觸摸
scaled up
TextView
那麼這個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;
}
});
每當文本視圖被縮放時:存儲當前文本視圖/狀態的引用。每次發生新的觸摸事件時:檢查當前文本視圖的狀態,並根據您提供的用例採取適合您的行爲 – Tobrun
謝謝,但問題是我無法存儲參考。我甚至嘗試在我的LinerLayout中添加一個TextView,並將TextView的可見性設置爲0,然後使用此隱藏TextView的高度和寬度與第一個匹配,如果內部OnTouch。仍然onTouch它總是進入其他部分。 – JHS
通過使用setTag方法爲每個文本視圖提供一個id,現在您知道哪個textview是哪個..然後在它們中創建文本視圖和存儲狀態的集合..在每次觸摸時循環此collection並搜索正確的textview並進行適當事情與它。您應該重新考慮處理觸摸事件的實現。 – Tobrun