直播软件搭建,横版自动滑动的轮播图

直播软件搭建,横版自动滑动的轮播图实现的相关代码

布局文件很简单,就一个viewpager,不过需要设置android:clipChildren为false,以便能显示出两边的view,两边各留了60dp。

 

1
<br><?xml version="1.0" encoding="utf-8"?><br><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br>    android:layout_width="match_parent"<br>    android:layout_height="match_parent"<br>    android:gravity="center"<br>    android:background="#ffffff"<br>    android:clipChildren="false"<br>    android:orientation="vertical"><br>    <android.support.v4.view.ViewPager<br>        android:id="@+id/viewpager"<br>        android:layout_marginLeft="60dp"<br>        android:layout_marginRight="60dp"<br>        android:clipChildren="false"<br>        android:layout_width="match_parent"<br>        android:layout_height="match_parent"/><br></LinearLayout>

​再来看下具体的代码实现:

 

1
public class MainActivity extends Activity {<br>    private ViewPager viewPager;<br>    private int[] imgs = new int[]{R.mipmap.ic_launcher,R.mipmap.ic_launcher,<br>            R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};<br>    @Override<br>    protected void onCreate(Bundle savedInstanceState) {<br>        super.onCreate(savedInstanceState);<br>        setContentView(R.layout.activity_main);<br>        viewPager = (ViewPager) findViewById(R.id.viewpager);<br>        viewPager.setOffscreenPageLimit(3);<br>        viewPager.setAdapter(new PagerAdapter() {<br>            @Override<br>            public int getCount() {<br>                return imgs.length;<br>            }<br>            @Override<br>            public boolean isViewFromObject(View view, Object object) {<br>                return view == object;<br>            }<br>            @Override<br>            public Object instantiateItem(ViewGroup container, int position) {<br>                ImageView imageView = new ImageView(MainActivity.this);<br>                imageView.setImageResource(imgs[position]);<br>                container.addView(imageView);<br>                return imageView;<br>            }<br>            @Override<br>            public void destroyItem(ViewGroup container, int position, Object object) {<br>                container.removeView((View) object);<br>            }<br>        });<br>        viewPager.setPageTransformer(true,new ViewPagerTrans());<br>    }<br>    class ViewPagerTrans implements ViewPager.PageTransformer{<br>        private float MIN_ALPHA = 0.5f;//渐变<br>        private float MIN_SCALE = 0.8f;//缩放<br>        @Override<br>        public void transformPage(View page, float position) {<br>//            float alpha = (1 - Math.abs(position)) * MIN_ALPHA + MIN_ALPHA;<br>//            float leftScale =  MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position));<br>            if(position < -1){//左侧划出屏幕部分<br>                page.setAlpha(MIN_ALPHA);<br>                page.setScaleX(MIN_SCALE);<br>                page.setScaleY(MIN_SCALE);<br>            } else if(position <=1){<br>                if(position <= 0){//滑动过程中左半部分  [-1~0]<br>                    float leftAlpha = (1 + position) * MIN_ALPHA + MIN_ALPHA;<br>                    page.setAlpha(leftAlpha);<br>                    float leftScale =  MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position));<br>                    page.setScaleX(leftScale);<br>                    page.setScaleY(leftScale);<br>                } else {//滑动过程中又半部分 [0~1]<br>                    float rightAlpha = (1 - position) * MIN_ALPHA + MIN_ALPHA;<br>                    page.setAlpha(rightAlpha);<br>                    float rightScale = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position));<br>                    page.setScaleX(rightScale);<br>                    page.setScaleY(rightScale);<br>                }<br>            } else {//右侧超出屏幕部分<br>                page.setAlpha(MIN_ALPHA);<br>                page.setScaleX(MIN_SCALE);<br>                page.setScaleY(MIN_SCALE);<br>            }<br>        }<br>    }<br>}

 

以上就是直播软件搭建,横版自动滑动的轮播图实现的相关代码, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示