日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果

發布時間:2024/7/19 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

畫廊在很多的App設計中都有,如下圖所示:

該例子是我沒事的時候寫的一個小項目,具體源碼地址請訪問https://www.easck.com/>

使用方式

布局中添加該自定義控件

xmlns:tools="http://www.easck.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/cover"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

代碼中設置

代碼中設置分為以下幾個步驟:

?查找控件

?初始化數據

?將需要顯示的數據設置到控件上

?設置滑動監聽

public class MainActivity extends AppCompatActivity {

private CoverFlowViewPager mCover;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mCover = (CoverFlowViewPager) findViewById(R.id.cover);

// 初始化數據

List list = new ArrayList<>();

for(int i = 0;i<10;i++){

ImageView img = new ImageView(this);

img.setBackgroundColor(Color.parseColor("#"+getRandColorCode()));

list.add(img);

}

//設置顯示的數據

mCover.setViewList(list);

// 設置滑動的監聽,該監聽為當前頁面滑動到中央時的索引

mCover.setOnPageSelectListener(new OnPageSelectListener() {

@Override

public void select(int position) {

Toast.makeText(getApplicationContext(),position+"",Toast.LENGTH_SHORT).show();

}

});

}

/**

* 獲取隨機顏色,便于區分

* @return

*/

public static String getRandColorCode(){

String r,g,b;

Random random = new Random();

r = Integer.toHexString(random.nextInt(256)).toUpperCase();

g = Integer.toHexString(random.nextInt(256)).toUpperCase();

b = Integer.toHexString(random.nextInt(256)).toUpperCase();

r = r.length()==1 ? "0" + r : r ;

g = g.length()==1 ? "0" + g : g ;

b = b.length()==1 ? "0" + b : b ;

return r+g+b;

}

}

實現原理

實現過程中有兩個難點:

?如何實現滑動過程中的放大與縮小

?如何顯示ViewPager中未被顯示的頁面

如何實現滑動過程中的放大與縮小?

在設置每一個ViewPager 的頁面時,對每一個頁面都設置一個固定的padding值,這樣每個頁面都會顯示縮小狀態。同時ViewPager設置addOnPageChangeListener(),滑動監聽,在該滑動監聽中會回調ViewPager的滑動的狀態,滑動的偏移量等,根據滑動的偏移量進行放大縮小。及根據padding值設置控件的顯示大小

總結

以上是生活随笔為你收集整理的android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。