1. 程式人生 > >Android自定義控制元件eBook翻書效果

Android自定義控制元件eBook翻書效果

public class Book extends Activity {
    /** Called when the activity is first created. */
 eBook mBook;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mBook = (eBook)findViewById(R.id.my_book);
        mBook.addLayoutRecForPage(R.layout.page,21);
        mBook.setListener(new eBook.Listener() {
   public void onPrevPage() {
    updateContent();
   }
   public void onNextPage() {
    updateContent();
   }
   public void onInit() {
    updateContent();
   }
  });
    }
   
    private void updateContent(){
     int index = mBook.getIndexForLeftPage();
     View left = mBook.getLeftPage(),right = mBook.getRightPage();
        View next1 = mBook.getNextPage1(),next2 = mBook.getNextPage2();
        View prev1 = mBook.getPrevPage1(),prev2 = mBook.getPrevPage2();
        if(left != null)setImg(left,index);
        if(right != null)setImg(right,index+1);
        if(next1 != null)setImg(next1,index+2);
        if(next2 != null)setImg(next2,index+3);
        if(prev1 != null)setImg(prev1,index-1);
        if(prev2 != null)setImg(prev2,index-2);
        mBook.invalidate();
    }
   
 private void setImg(View v , int index){
  if(index >= 0 && index < 20){
   ImageView img = (ImageView)v.findViewById(R.id.book_img);
   if(img == null)return;
   Log.d("eBook","set Img");
   switch(index%6){
   case 0:
    img.setImageResource(R.drawable.p1);
    break;
   case 1:
    img.setImageResource(R.drawable.p2);
    break;
   case 2:
    img.setImageResource(R.drawable.p3);
    break;
   case 3:
    img.setImageResource(R.drawable.p4);
    break;
   case 4:
    img.setImageResource(R.drawable.p5);
    break;
   case 5:
    img.setImageResource(R.drawable.p6);
    break;
   default:
    break;
   }
  }
 }
}

相關推薦

Android定義控制元件eBook效果

public class Book extends Activity {    /** Called when the activity is first created. */ eBook mBook;    public void onCreate(Bundle savedInstanceState) {

android定義控制元件自動換行效果實現

     第一篇部落格裡面有介紹一篇關於自動換行實現諸多自定義控制元件跟各種效果的博文,但是礙於當初技術能力有限,寫的jar包裡的程式碼亂七八糟,在最近忙完了手頭的工作,不經意間翻看了之前的程式碼,真是慘不忍睹,隨決定重新封裝。重新編寫的android-custom-vg前

Android定義控制元件實戰——水流波動效果的實現WaveView

   水流波動的波形都是三角波,曲線是正餘弦曲線,但是Android中沒有提供繪製正餘弦曲線的API,好在Path類有個繪製貝塞爾曲線的方法quadTo,繪製出來的是2階的貝塞爾曲線,要想實現波動效果,只能用它來繪製Path曲線。待會兒再講解2階的貝塞爾曲線是怎麼回事,先

Android 定義控制元件實戰——水流波動效果的實現WaveView

   水流波動的波形都是三角波,曲線是正餘弦曲線,但是Android中沒有提供繪製正餘弦曲線的API,好在Path類有個繪製貝塞爾曲線的方法quadTo,繪製出來的是2階的貝塞爾曲線,要想實現波動效果,只能用它來繪製Path曲線。待會兒再講解2階的貝塞爾曲線是怎麼回事,先來看實現的效果: 這

android-定義控制元件

自定義控制元件兩種方式 1、繼承ViewGroup 例如:ViewGroup , LinearLayout, FrameLayout, RelativeLayout等。 2、繼承View 例如:View, TextView, ImageView, Button等。 View的測量

Android 定義控制元件-星級評分

在學習自定義控制元件時需要一些例子來練練手,本文這個控制元件就是在這種環境下產生的(可能有BUG); 這個控制元件設計的特點: 1,可以任意修改星星數量 2,可以星星大小會隨控制元件大小而縮小,在控制元件足夠大的情況可以任意設定星星大小 3,滑動監聽,根據滑動距離選擇星級 4,可

[Android定義控制元件] Android定義控制元件

轉載自: http://blog.163.com/[email protected]/blog/static/103242241201382210910473/ 開發自定義控制元件的步驟: 1、瞭解View的工作原理  2、

Android 定義控制元件釋義

由於經常在android的開發過過程中與控制元件打交道,所以有些android控制元件並不能滿足我們的需求, 進而需要自定義一 些為我們所用,但是本文只是一些名詞解析,具體實現可以網路搜尋獲得答案,在此只是個人的筆錄 1:自定義控制元件方式: 1.1:繼承view,button,

Android定義控制元件】炫酷的底部導航欄

https://github.com/WakeHao/NavBar 基本使用 使用這個控制元件,只需要簡單的幾部 引入該控制元件到你的專案中 compile 'com.chen.wakehao.library:bottom-navigation-bar:1.0.0'

Android定義控制元件之區域性圖片放大鏡--BiggerView

零、前言: 本文的知識點一覽 1.自定義控制元件及自定義屬性的寫法,你也將對onMesure有更深的認識 2.關於bitmap的簡單處理,及canvas區域裁剪 3.本文會實現兩個自定義控制元件:FitImageView(圖片自適應)和BiggerView(放大鏡),前者為後者作為鋪墊。 4.最後會

Android學習(十)—— Android定義控制元件

Android自定義控制元件 安卓在使用中大多數使用已有的一些控制元件,用法比較簡單,還有一部分是比較複雜的、使用者自己想的控制元件,這些就需要進行自定義控制元件,今天就來簡單說一下自定義控制元件。 1、繪製過程 建立一個類,繼承View類 onMeasure()方法,測量計算檢視的大小

Android定義控制元件-不同形狀的ImageView

實現分析: 依然是用到Paint的圖層混合模式, 1、畫一個你想要的形狀 || 圖片 2、修改Paint的圖層混合模式,畫圖片。 3、然後就能得到你想要的形狀的ImageView paint.setXfermode(new PorterDuffXfermode(Mode

Android定義控制元件----繼承ViewGroup側滑選單3,普通側滑選單,新增選單切換按鈕(完結)

專案結構: 思路: 對外暴露一個選單開啟和關閉選單的方法toggle 當開啟時this.smoothScrollTo(0, 0);滑動選單顯示 當關閉時this.smoothScrollTo(mMenuWidth, 0);選單隱藏

Android定義控制元件view(草稿版)

Ⅰ、繼承現有控制元件,對其控制元件的功能進行拓展。(拓展功能) Ⅱ、將現有控制元件進行組合,實現功能更加強大控制元件。(佈局重用) Ⅲ、重寫View實現全新的控制元件(不規則效果控制元件) 本文來討論最難的一種自定義控制元件形式,重寫View來實現全新的控制元件。 1.構

Android定義控制元件屬性(草稿版)

    常用的format型別: 1) string:字串型別; 2) integer:整數型別; 3) float:浮點型; 4) dimension:尺寸,後面必須跟dp、dip、px、sp等單位; 5) Boolean:布林值; 6) refer

Android定義控制元件 帶文字提示的SeekBar

轉載請註明出處:juejin.im/post/5c1af0… 本文出自 容華謝後的部落格 1.寫在前面 SeekBar控制元件在開發中還是比較常見的,比如音視訊進度、音量調節等,但是原生控制元件有時還不能滿足我們的需求,今天就來學習一下如何自定義SeekBar控制元件,本文主要實現了一個帶文

Android 定義控制元件 優雅實現元素間的分割線 (支援3.0以下)

1、概述話說,隨著Android SDK版本的升級,很多控制元件增加了新的屬性方便我們的使用,比如LinearLayout中多了:divider、showDividers等,用於為其內部元素新增分隔;但是呢,這樣的屬性在較低版本的SDK中不能被支援,那麼,我們在開發過程中,可

Android定義控制元件之仿汽車之家下拉重新整理

關於下拉重新整理的實現原理我在上篇文章Android自定義控制元件之仿美團下拉重新整理中已經詳細介紹過了,這篇文章主要介紹錶盤的動畫實現原理 汽車之家的下拉重新整理分為三個狀態: 第一個狀態為下拉重新整理狀態(pull to refresh),在這個狀

Android定義控制元件實戰——滾動選擇器PickerView

  手機裡設定鬧鐘需要選擇時間,那個選擇時間的控制元件就是滾動選擇器,前幾天用手機刷了MIUI,發現自帶的那個時間選擇器效果挺好看的,於是就自己仿寫了一個,權當練手。先來看效果:                                              

Android定義控制元件 多樣式進度View

系統進度條賊不好用,大小設定不確定,寬高又不確定,所以自信開發了一套還算是比較完備的進度控制元件。 效果大概就這麼多,背景和進度背景都可以使用顏色,或者圖片,圓角,以及進度條寬高,遊標等等