TabLayout 轮播 展示

package com.example.w.lianxi50;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import adapter.Adapter;
import adapter.MyAdapter;
import adapter.MypageAdapter;
import bean.UserBean;

public class MainActivity extends AppCompatActivity {

    private ViewPager view_page;
    private TabLayout tab_layout;
    private PullToRefreshGridView pull_gridView;
    private String[] title={"头条1","头条2","头条3","头条4","头条5","头条6","头条7","头条8","头条9","头条1","头条1"};
    private ArrayList<Fragment> list;
    private int page=10;
    private String uri="https://www.apiopen.top/satinApi?type=1&page=";
    private boolean state_load=true;
    private boolean state_pull=false;
    private boolean state_push=false;
    private Adapter adapter;
    private ViewPager view_page1;
    private LinearLayout linear_layout;
    private ArrayList<ImageView> image;
    private ArrayList<String> uri_image;
    @SuppressLint("HandlerLeak")
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            int item = view_page1.getCurrentItem();
            view_page1.setCurrentItem(item+1);
            changePoint((item+1)%uri_image.size());
            handler.sendEmptyMessageDelayed(0,2000);

        }
    };

    private void changePoint(int i) {
        for (int j=0;j<image.size();j++){
            if (j == i) {
                image.get(j).setImageResource(R.drawable.red);
            } else {
                image.get(j).setImageResource(R.drawable.white);
            }

        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		
		
		
        view_page = findViewById(R.id.view_page);
        tab_layout = findViewById(R.id.tab_layout);
        view_page1 = findViewById(R.id.view_page1);
        linear_layout = findViewById(R.id.linear_layout);
        pull_gridView = findViewById(R.id.pull_gridView);
        list = new ArrayList<>();
        for (String title:title){
            list.add(top.newgetInstance(title));
        }
        MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager(), list);
        view_page.setAdapter(myAdapter);
		
		

        pull_gridView.setMode(PullToRefreshBase.Mode.BOTH);
        pull_gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                changestate(false, true, false);
                if (page > 1) {
                  page--;
                    new load().execute(uri + page);
                } else {
                    pull_gridView.onRefreshComplete();
                }


            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
                changestate(false,false,true);
                page++;
                new load().execute(uri+page);

            }
        });
        new load().execute(uri+page);


        //轮播
        image = new ArrayList<>();
        uri_image = new ArrayList<>();

        uri_image.add("http://img.zcool.cn/community/0142135541fe180000019ae9b8cf86.jpg@1280w_1l_2o_100sh.png");
        uri_image.add("http://img.zcool.cn/community/0181845834f4eda8012060c8c95113.JPG@1280w_1l_2o_100sh.png");
        uri_image.add("http://img.zcool.cn/community/019489590ad530a801214550df4b17.jpg@1280w_1l_2o_100sh.png");
        uri_image.add("http://img.zcool.cn/community/019489590ad530a801214550df4b17.jpg@1280w_1l_2o_100sh.png");
        MypageAdapter mypageAdapter = new MypageAdapter(MainActivity.this, uri_image);
        view_page1.setAdapter(mypageAdapter);
        handler.sendEmptyMessageDelayed(0,2000);
        point();
    }

    private void point() {
        for (int i=0;i<uri_image.size();i++){
            ImageView imageView = new ImageView(this);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            if (i == 0) {
                imageView.setImageResource(R.drawable.red);
            } else {
                imageView.setImageResource(R.drawable.white);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(30, 30);
            linear_layout.addView(imageView,params);
            image.add(imageView);

        }
    }

    class load extends AsyncTask<String, Void, List<UserBean.DataBean>> {
        @Override
        protected List<UserBean.DataBean> doInBackground(String... strings) {
            try {
                URL url = new URL(strings[0]);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setReadTimeout(5000);
                connection.setConnectTimeout(5000);
                if (connection.getResponseCode()==200) {
                    String json=InputStream2(connection.getInputStream());
                    Gson gson = new Gson();
                    UserBean bean = gson.fromJson(json, UserBean.class);
                    return bean.getData();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(List<UserBean.DataBean> dataBeans) {
            super.onPostExecute(dataBeans);
            if (state_load) {
                adapter = new Adapter(MainActivity.this,dataBeans);
                pull_gridView.setAdapter(adapter);
            } else if (state_pull) {
                adapter.add(dataBeans);

            } else {
                adapter.loadMore(dataBeans);
            }
            pull_gridView.onRefreshComplete();
        }

    }

    private String InputStream2(InputStream inputStream) throws IOException {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        int len=-1;
        byte[] bytes = new byte[1024];
        while ((len=inputStream.read(bytes))!=-1) {
            outputStream.write(bytes,0,len);
        }
        return new String(outputStream.toByteArray());
    }

    private void changestate(boolean b, boolean b1, boolean b2) {
        state_load=b;
        state_pull=b1;
        state_push=b2;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中可以通过使用UI组件和动画来实现滑动层叠图片轮播展示。 1. 创建UI元素 首先,在场景中创建一个Canvas对象,并添加一个Raw Image组件作为背景图。然后,在Canvas下创建一个Scroll View对象,设置它的大小和位置,并添加一个Viewport作为子对象。 2. 添加图片 在Viewport下,可以添加多个Image对象作为图片集合。可以通过拖拽方式添加,也可以通过使用代码动态添加。每个Image对象需要设置好对应的图片和位置,以便在滑动过程中能够正确显示。 3. 编写脚本 可以为Scroll View对象添加一个脚本来实现滑动层叠图片轮播展示。在脚本中,需要实现以下功能: - 获取所有的Image对象,并按照顺序排列。 - 根据滑动的方向(向左或向右),计算出需要显示的图片序号。 - 将需要显示的图片居中显示,并将其前后的图片分别以不同的大小和位置进行显示。 - 在滑动过程中,根据手指的移动距离和速度,计算出需要滑动的距离和时间,并使用动画实现滑动效果。 4. 实现手势控制 可以使用Unity提供的Input系统来实现手势控制。在脚本中,可以通过监听输入事件来获取手指在屏幕上的移动距离和速度,并根据这些信息来计算出需要滑动的距离和时间。 5. 实现自动播放 可以通过使用协程来实现自动播放功能。在脚本中,可以编写一个协程函数,定时切换下一张图片,并使用动画实现滑动效果。可以通过设置定时器来控制自动播放的时间间隔。 6. 完善UI效果 可以通过添加特效和动画来增强UI效果。例如,在图片滑动过程中可以添加渐变效果,以使过渡更加自然。还可以为每个Image对象添加阴影、边框等效果,以增强图片的视觉效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值