Android 高级组件ScrollView和ViewPager

ScrollView视图(滚动视图)可以有效的安排这些组件,浏览时可以进行滚屏的操作
垂直滚动——ScrollView
水平滚动——HorizontalScrollView
常用属性:
android:scrollbars=“none”//禁止出现滚动条
取值:none、 horizontal、 vertical

ScrollView是单一容器,只能包含一个组件、但可以进行组件的嵌套

本代码结合了ViewPager组件,简单了实现图片的滑动和上方滚动图标。

代码部分:

<span style="font-size:18px;">public class Scroll_ViewActivity extends AppCompatActivity {
    private RadioGroup radioGroup;
    private RadioButton rb1;
    private ViewPager vw;
    private List<PhotoView> myData;
    private com.jereh.ch04.Adapter.MyViewPagerAdapter ma;
    private HorizontalScrollView scrollView;
//Scroll_ViewActivity实现滚动(上下左右)的效果。只能包含单一组件(可以使用布局的嵌套)。
//和ViewPager搭配使用,监听Scroll_ViewActivity中RadioButton和ViewPager的 OnPageChangeListener
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_scroll__view);
        radioGroup = (RadioGroup) findViewById(R.id.radio);
        rb1 = (RadioButton)findViewById(R.id.r1) ;
        vw = (ViewPager)findViewById(R.id.vp);
        scrollView =(HorizontalScrollView)findViewById(R.id.sv);


        vpInit();//添加图片的方法;
        vw.addOnPageChangeListener(new myOnPageChangeListener());//滑动图片监听
        radioGroup.setOnCheckedChangeListener(new myOnCheckedChangeListener());//选择监听

    }
    public void vpInit(){
        myData = new ArrayList<>();
        PhotoView img = new PhotoView(this);
        img.setImageResource(R.mipmap.p3);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p1);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p2);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p4);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p5);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p6);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p7);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p8);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p9);
        myData.add(img);
        img = new PhotoView(this);
        img.setImageResource(R.mipmap.p10);
        myData.add(img);
        ma = new com.jereh.ch04.Adapter.MyViewPagerAdapter(myData);
        vw.setAdapter(ma);
        vw.setCurrentItem(0);
    }
    public class myOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if(checkedId == R.id.r1){
                //应当用此方法
                Toast.makeText(getBaseContext(), rb1.getText().toString(),Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(0);
            } else  if (checkedId == R.id.r2){
                Toast.makeText(getBaseContext(),"热点",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(1);
            } else  if (checkedId == R.id.r3){
                Toast.makeText(getBaseContext(),"聊城",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(2);
            } else  if (checkedId == R.id.r4){
                Toast.makeText(getBaseContext(),"图片",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(3);
            } else  if (checkedId == R.id.r5){
                Toast.makeText(getBaseContext(),"烟台",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(4);
            } else  if (checkedId == R.id.r6){
                Toast.makeText(getBaseContext(),"财经",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(5);
            } else  if (checkedId == R.id.r7){
                Toast.makeText(getBaseContext(),"体育",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(6);
            } else  if (checkedId == R.id.r8){
                Toast.makeText(getBaseContext(),"视频",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(7);
            } else  if (checkedId == R.id.r9){
                Toast.makeText(getBaseContext(),"美女",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(8);
            } else  if (checkedId == R.id.r10){
                Toast.makeText(getBaseContext(),"亲子",Toast.LENGTH_SHORT).show();
                vw.setCurrentItem(9);
            }
        }
      }
    public class myOnPageChangeListener implements ViewPager.OnPageChangeListener{

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
         RadioButton radioButton = (RadioButton)radioGroup.getChildAt(position);
            radioButton.setChecked(true);
            if(position == 5){
                scrollView.scrollTo(500,0);//滑动到的坐标
            } else if (position == 4){
                scrollView.scrollTo(0,0);
            }

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    }
}</span>
<span style="font-size:18px;">图片:</span>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值