From 54179183822c088dfdfa2f0a1ebd2dd3cd2589eb Mon Sep 17 00:00:00 2001 From: seven332 Date: Mon, 12 May 2014 02:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20TextSwitcher=20=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3=20ProgressiveTextView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- res/anim/push_up_in.xml | 20 +++++++++++++ res/anim/push_up_out.xml | 20 +++++++++++++ res/layout/detail.xml | 3 +- res/layout/detail_avg_text.xml | 5 ++++ res/layout/detail_normal.xml | 8 +++-- .../activity/DetailSectionFragment.java | 29 +++++++++++++++---- 6 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 res/anim/push_up_in.xml create mode 100644 res/anim/push_up_out.xml create mode 100644 res/layout/detail_avg_text.xml diff --git a/res/anim/push_up_in.xml b/res/anim/push_up_in.xml new file mode 100644 index 000000000..a7ef38726 --- /dev/null +++ b/res/anim/push_up_in.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/res/anim/push_up_out.xml b/res/anim/push_up_out.xml new file mode 100644 index 000000000..7b67c3b0e --- /dev/null +++ b/res/anim/push_up_out.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/res/layout/detail.xml b/res/layout/detail.xml index 058fc3172..aa2310c4a 100644 --- a/res/layout/detail.xml +++ b/res/layout/detail.xml @@ -92,7 +92,8 @@ android:layout_width="fill_parent" android:layout_height="2.0dp" android:background="@android:color/holo_blue_light" /> - + + \ No newline at end of file diff --git a/res/layout/detail_normal.xml b/res/layout/detail_normal.xml index be7938bf5..e6689f369 100644 --- a/res/layout/detail_normal.xml +++ b/res/layout/detail_normal.xml @@ -23,14 +23,16 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" /> - + android:layout_marginLeft="6.0dp" + android:inAnimation="@anim/push_up_in" + android:outAnimation="@anim/push_up_out" > + diff --git a/src/com/hippo/ehviewer/activity/DetailSectionFragment.java b/src/com/hippo/ehviewer/activity/DetailSectionFragment.java index bc7a7fed1..e5ae69b51 100644 --- a/src/com/hippo/ehviewer/activity/DetailSectionFragment.java +++ b/src/com/hippo/ehviewer/activity/DetailSectionFragment.java @@ -53,6 +53,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; +import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; @@ -60,8 +61,11 @@ import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.RatingBar; import android.widget.ScrollView; +import android.widget.TextSwitcher; import android.widget.TextView; import android.widget.Toast; +import android.widget.ViewFlipper; +import android.widget.ViewSwitcher.ViewFactory; public class DetailSectionFragment extends Fragment implements View.OnClickListener { @@ -485,8 +489,15 @@ public class DetailSectionFragment extends Fragment RatingBar rate = (RatingBar)mRootView.findViewById(R.id.detail_rate); rate.setRating(mGalleryDetail.rating); - TextView averagePeople = (TextView)mRootView.findViewById(R.id.detail_average_people); - averagePeople.setText(String.format("%.2f (%d)", + TextSwitcher averagePeople = (TextSwitcher)mRootView.findViewById(R.id.detail_average_people); + averagePeople.setFactory(new ViewFactory() { + @Override + public View makeView() { + LayoutInflater inflater = LayoutInflater.from(mActivity); + return inflater.inflate(R.layout.detail_avg_text, null); + } + }); + averagePeople.setCurrentText(String.format("%.2f (%d)", mGalleryDetail.rating, mGalleryDetail.people)); TextView posted = (TextView)mRootView.findViewById(R.id.detail_posted); @@ -664,9 +675,9 @@ public class DetailSectionFragment extends Fragment RatingBar rate = (RatingBar)mRootView.findViewById(R.id.detail_rate); rate.setRating(mGalleryDetail.rating); - ProgressiveTextView averagePeople = (ProgressiveTextView)mRootView.findViewById( - R.id.detail_average_people); - averagePeople.setNewText(String.format("%.2f (%d)", + TextSwitcher averagePeople = (TextSwitcher) + mRootView.findViewById(R.id.detail_average_people); + averagePeople.setText(String.format("%.2f (%d)", mGalleryDetail.rating, mGalleryDetail.people)); } Toast.makeText(mActivity, @@ -827,4 +838,12 @@ public class DetailSectionFragment extends Fragment "投票失败\n" + eMsg, Toast.LENGTH_SHORT).show(); // TODO } } + + private ViewFactory mFactory = new ViewFactory() { + @Override + public View makeView() { + LayoutInflater inflater = LayoutInflater.from(mActivity); + return inflater.inflate(R.layout.detail_avg_text, null); + } + }; }