android – 使用view pager的点动画

android – 使用view pager的点动画,第1张

概述我正在开发一个包含ViewPager的FragmentActivity. ViewPager使用FragmentPagerAdapter提供了三个片段.所以我能够使用viewpager实现滑动屏幕.我可以刷页面,点击下一个按钮,我也可以移动到下一页/片段.以下代码对我有用: 1.WelcomeFragmentActivity.java public class WelcomeFragmentAct 我正在开发一个包含VIEwPager的FragmentActivity. VIEwPager使用FragmentPagerAdapter提供了三个片段.所以我能够使用vIEwpager实现滑动屏幕.我可以刷页面,点击下一个按钮,我也可以移动到下一页/片段.以下代码对我有用:

1.WelcomeFragmentActivity.java

public class WelcomeFragmentActivity extends FragmentActivity {    private List<Fragment> ListFragments;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.fragment_activity_welcome);        //FindVIEwByID        final VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.vIEwPager);        button btnNext = (button) findVIEwByID(R.ID.btnNext);        //Initializing the List        ListFragments = new ArrayList<Fragment>();        //initializing the fragments        WelcomeOneFragment welcomeOneFragment = new WelcomeOneFragment();        WelcomeTwoFragment welcomeTwoFragment = new WelcomeTwoFragment();        WelcomeThreeFragment welcomeThreeFragment = new WelcomeThreeFragment();        //Adding Fragments to List        ListFragments.add(welcomeOneFragment);        ListFragments.add(welcomeTwoFragment);        ListFragments.add(welcomeThreeFragment);        //initializing PagerAdapterWelcome        PagerAdapterWelcome pagerAdapterWelcome = new PagerAdapterWelcome(getSupportFragmentManager(),ListFragments);        vIEwPager.setAdapter(pagerAdapterWelcome);        //On clicking next button move to next fragment        btnNext.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw vIEw) {                Log.e("Current position",String.valueOf(vIEwPager.getCurrentItem()));                vIEwPager.setCurrentItem(vIEwPager.getCurrentItem() + 1);                // If vIEw pager is displaying the 3rd fragment,move to WelcomeActivity                if (vIEwPager.getCurrentItem() == 2) {                    Log.e("Curent position",String.valueOf(vIEwPager.getCurrentItem()));                    startActivity(new Intent(WelcomeFragmentActivity.this,WelcomeActivity.class));                }            }        });    }}

2.PagerAdapterWelcome.java

public class PagerAdapterWelcome extends FragmentPagerAdapter {    private List<Fragment> ListFragments;    public PagerAdapterWelcome(FragmentManager fm,List<Fragment> ListFragments) {        super(fm);        this.ListFragments = ListFragments;    }    @OverrIDe    public Fragment getItem(int i) {        return ListFragments.get(i);    }    @OverrIDe    public int getCount() {        return ListFragments.size();    }}

我想实现以下屏幕:

在刷卡或点击下一个按钮后,这三个屏幕将一个接一个地显示.点的橙色告诉我我正在处理哪个片段.请指导我如何给这些点动画

编辑代码

我使用了RadioGroup来实现这个概念.考虑以下代码:

vIEwPager.setonPagechangelistener(new VIEwPager.OnPagechangelistener() {        @OverrIDe        public voID onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {        }        @OverrIDe        public voID onPageSelected(int position) {            position = vIEwPager.getCurrentItem();            Log.e("position",String.valueOf(position));            if (position == 0)                radioGroup.check(R.ID.radioBtnOne);            else if (position == 1) {                radioGroup.check(R.ID.radioBtnTwo);            } else                radioGroup.check(R.ID.radioBtnThree);        }        @OverrIDe        public voID onPageScrollStateChanged(int state) {        }    });

它在某种程度上工作,但我没有得到设计中提到的确切颜色.请检查以下屏幕截图:

在Ankit Aggrawal建议的无线电biutton中添加一些样式后,我得到以下内容:

解决方法 我通过使用radiogroup实现了这一点.使用相对布局将该无线电组放置在vIEwpager上方.创建一个具有所需点数的单选按钮作为单选按钮.不要给单选按钮提供任何文本.

编辑:下面是完整的代码.

像这样创建你的布局

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical">    <RadioGroup        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_centerHorizontal="true"        androID:orIEntation="horizontal"        androID:ID="@+ID/radioGroup">        <Radiobutton            androID:ID="@+ID/radioBtnOne"            androID:layout_wIDth="15dp"            androID:layout_height="15dp"            androID:background="@drawable/button_selector"            androID:button="@null"/>        <Radiobutton            androID:ID="@+ID/radioBtnTwo"            androID:layout_wIDth="15dp"            androID:layout_height="15dp"            androID:background="@drawable/button_selector"            androID:button="@null"/>        <Radiobutton            androID:ID="@+ID/radioBtnThree"            androID:layout_wIDth="15dp"            androID:layout_height="15dp"            androID:background="@drawable/button_selector"            androID:button="@null"/>    </RadioGroup>    <androID.support.v4.vIEw.VIEwPager        androID:ID="@+ID/vIEwPager"        androID:layout_wIDth="match_parent"        androID:layout_height="match_parent" /></relativeLayout>

现在在vIEwpager中,放一个onPagechangelistener

vIEwPager.setonPagechangelistener(new VIEwPager.OnPagechangelistener() {            @OverrIDe            public voID onPageScrolled(int position,int positionOffsetPixels) {            }            @OverrIDe            public voID onPageSelected(int position) {                radioGroup.check(radioGroup.getChildAt(position).getID());            }            @OverrIDe            public voID onPageScrollStateChanged(int state) {            }        });

以下是单选按钮button_selector.xml的选择器

<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID" >     <item        androID:state_checked="true"        androID:state_pressed="false"        androID:drawable="@drawable/toggle_button_selected"/>    <item        androID:state_checked="false"        androID:state_pressed="false"        androID:drawable="@drawable/toggle_button_unselected"/>    <item        androID:state_checked="true"        androID:state_pressed="true"        androID:drawable="@drawable/toggle_button_selected"/>    <item        androID:state_checked="false"        androID:state_pressed="true"        androID:drawable="@drawable/toggle_button_unselected"/></selector>

现在,对于选定按钮,创建此toggle_button_selected_drawable.xml

<?xml version="1.0" enCoding="utf-8" ?><shape    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:shape="rectangle" >    <corners        androID:radius="10dp" />    <solID        androID:color="@color/your_selection_color" /></shape>

类似地,对于未选择的按钮,创建此toggle_button_unselected_drawable.xml

<?xml version="1.0" enCoding="utf-8" ?><shape    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:shape="rectangle" >    <corners        androID:radius="10dp" />    <solID        androID:color="@color/grey" /></shape>
总结

以上是内存溢出为你收集整理的android – 使用view pager的点动画全部内容,希望文章能够帮你解决android – 使用view pager的点动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1148884.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存