Android實現翻頁特效
本文實例為大家分享了Android實現翻頁特效的具體代碼,供大家參考,具體內容如下
android-flip是一個能夠輕松幫你實現水平以及豎直翻頁特效的庫,但是在判斷翻頁的時候有bug,我們需要在FlipCards.java中找到這一段:
if (Math.abs(getPageIndexFromAngle(accumulatedAngle + angleDelta) - lastPageIndex) <= 1) { ? ? ? accumulatedAngle += angleDelta; ? ? ? ? ? ?}
將它更改為:
if(((accumulatedAngle + angleDelta > lastPageIndex*180) ? ? ?&& (accumulatedAngle + angleDelta <= (lastPageIndex+1) * 180)) || ? ? ? ? ((accumulatedAngle + angleDelta < lastPageIndex*180) &&? ? ? ? ? ? ? ? ? ? ? (accumulatedAngle + angleDelta >= (lastPageIndex-1) * 180))){ ? ? ? ? ? ? ? accumulatedAngle += angleDelta; ? ? ? ? ? ? }
而在翻頁的時候會有閃爍現象產生,為了減輕現象的發(fā)生,我們需要修改另外一個地方,在FlipViewController.java中找到這一段:
void postHideFlipAnimation() { ? ? ? if (inFlipAnimation) { ? ? ? ? handler.post(new Runnable() { ? ? ? ? ? @Override ? ? ? ? ? public void run() { ? ? ? ? ? ? hideFlipAnimation(); ? ? ? ? ? } ? ? ? ? }); ? ? ? } ? ? }
修改為:
void postHideFlipAnimation() { ? ? ? if (inFlipAnimation) { ? ? ? ? handler.postDelayed(new Runnable() { ? ? ? ? ? @Override ? ? ? ? ? public void run() { ? ? ? ? ? ? hideFlipAnimation(); ? ? ? ? ? } ? ? ? ? }, 200); ? ? ? } ? ? }
然后我們就可以輕松地用它來為我們的app添加翻頁特效,在Activity中添加代碼:
package com.nekocode.xuedao; ? import android.os.Bundle; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.aphidmobile.flip.FlipViewController; import com.nekocode.xuedao.adapter.SubscribeIndexAdapter; ? public class SubsecribeIndexActivity extends SherlockFragmentActivity { ?? ?private PublicData pd; ?? ?private FlipViewController mFlipView; ?? ? ?? ?@Override ?? ?public void onCreate(Bundle savedInstanceState) { ?? ??? ?super.onCreate(savedInstanceState); ?? ??? ?pd = PublicData.getInstance(); ?? ??? ? ?? ??? ?mFlipView = new FlipViewController(this, FlipViewController.HORIZONTAL); ?? ??? ?mFlipView.setAdapter(new SubscribeIndexAdapter(this)); ?? ??? ? ?? ??? ?setContentView(mFlipView); ?? ?} ? ?? ?@Override ?? ?protected void onResume() { ?? ??? ?super.onResume(); ?? ??? ?mFlipView.onResume(); ?? ?} ? ?? ?@Override ?? ?protected void onPause() { ?? ??? ?super.onPause(); ?? ??? ?mFlipView.onPause(); ?? ?} }
創(chuàng)建FlipAdapter:
package com.nekocode.xuedao.adapter; ? import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; ? import com.aphidmobile.utils.UI; import com.nekocode.xuedao.R; ? public class SubscribeIndexAdapter extends BaseAdapter { ? private LayoutInflater inflater; ? ? public SubscribeIndexAdapter(Context context) { ? ? inflater = LayoutInflater.from(context); ? } ? ? @Override ? public int getCount() { ? ? return 5; ? } ? ? @Override ? public Object getItem(int position) { ? ? return position; ? } ? ? @Override ? public long getItemId(int position) { ? ? return position; ? } ? ? @Override ? public View getView(int position, View convertView, ViewGroup parent) { ? ? View layout = convertView; ? ? if (convertView == null) { ? ? ? layout = inflater.inflate(R.layout.item_subscribe_index, null); ? ? } ? ? ? UI ? ? ? ? .<TextView>findViewById(layout, R.id.textView7) ? ? ? ? .setText("今日熱點" + position); ? ? ? return layout; ? } }
layout文件并沒有什么重要信息所以不放出代碼了,效果圖:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android Fragment(動態(tài),靜態(tài))碎片詳解及總結
這篇文章主要介紹了Android Fragment詳解及總結的相關資料,這里對Android Fragment 動態(tài),靜態(tài)碎片進行了整理總結,需要的朋友可以參考下2016-12-12RecyclerView+PagerSnapHelper實現抖音首頁翻頁的Viewpager效果
這篇文章主要為大家詳細介紹了RecyclerView+PagerSnapHelper實現抖音首頁翻頁的Viewpager效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10Android變形(Transform)之Camera使用介紹
Camera主要實現3D的變形,有轉動,旋轉等,Camera的源碼是由Native(本地代碼)實現,提供的接口也比較簡單,感興趣的朋友可以參考下,或許對你學習有所幫助2013-02-02Android利用碎片fragment實現底部標題欄(Github模板開源)
Fragment可以作為Activity的組成部分,一個Activity可以有多個Fragment,這篇文章主要介紹了Android利用碎片fragment實現底部標題欄(Github模板開源),需要的朋友可以參考下2019-12-12