IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> ViewPage实现一屏多页面显示(进阶版),android高级面试题库 -> 正文阅读

[移动开发]ViewPage实现一屏多页面显示(进阶版),android高级面试题库

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

import android.widget.LinearLayout;

import androidx.annotation.NonNull;

import androidx.viewpager.widget.PagerAdapter;

import androidx.viewpager.widget.ViewPager;

public class MainActivity extends Activity {

private ViewPager vp_img;

private int[] imageIds = new int[]

{

R.drawable.pre1, R.drawa
ble.pre2, R.drawable.pre3, R.drawable.pre4,

R.drawable.pre5, R.drawable.pre6, R.drawable.pre7, R.drawable.pre8,

R.drawable.pre9, R.drawable.pre10, R.drawable.pre11, R.drawable.pre12,

R.drawable.pre13, R.drawable.pre14, R.drawable.pre15, R.drawable.pre16,

R.drawable.pre17, R.drawable.pre18, R.drawable.pre19, R.drawable.pre20,

R.drawable.pre21

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bindView();

bindData();

}

private void bindView() {

vp_img = findViewById(R.id.vp_img);

}

private void bindData() {

MyAdapter myAdapter = new MyAdapter();

vp_img.setOffscreenPageLimit(5);

vp_img.setPageMargin(10);

vp_img.setPageTransformer(false,new MyTransformer());

vp_img.setAdapter(myAdapter);

}

private class MyAdapter extends PagerAdapter {

@Override

public int getCount() {

return imageIds.length;

}

@Override

public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {

return view == object;

}

@NonNull

@Override

public Object instantiateItem(@NonNull ViewGroup container, int position) {

ImageView iv = new ImageView(getApplication());

iv.setImageResource(imageIds[position]);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(50,50);

iv.setLayoutParams(params);

container.addView(iv);

return iv;

}

@Override

public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

container.removeView((View) object);

}

}

private class MyTransformer implements ViewPager.PageTransformer {

@Override

public void transformPage(@NonNull View page, float position) {

//第一步:中间 哪张 的 position 属于哪个范围把所有值打印出来观察获得

//第二步:根据 观察 结果把区间分好

//第三步:相邻区间保证连贯性

//注意:这里一次性打印多少个 page 是由页面一次显示多少 imageView 决定的

if (position>=1&&position<=2){

page.setScaleY(1.0f + 0.5f*(position-(int)Math.abs(position)));

page.setScaleX(1.0f + 0.5f*(position-(int)Math.abs(position)));

}else if (position<=0||position>=3){

page.setScaleY(0.5f);

page.setScaleX(0.5f);

}else if (position>0&&position<1){

page.setScaleY(0.5f + 0.5f*(position-(int)Math.abs(position)));

page.setScaleX(0.5f + 0.5f*(position-(int)Math.abs(position)));

}else if (position>2&&position<3){

page.setScaleY(0.5f + 1.0f*(1-position+(int)Math.abs(position)));

page.setScaleX(0.5f + 1.0f*(1-position+(int)Math.abs(position)));

}

}

}
else if (position>2&&position<3){

page.setScaleY(0.5f + 1.0f*(1-position+(int)Math.abs(position)));

page.setScaleX(0.5f + 1.0f*(1-position+(int)Math.abs(position)));

}

}

}

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:01:03  更:2022-01-24 11:03:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:02:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码