用指示器滑动视图寻呼机

时间:2016-05-14 14:13:29

标签: android android-viewpager indicator swipeview

我正在使用页面指示器轻扫ViewPager但是当我运行我的应用程序时,我看到了playbutton.xml并且滑动视图不起作用。
这是我的java Activity(play_button.java):

public class play_button extends Activity implements
ViewPager.OnPageChangeListener, View.OnClickListener{

protected View view;
private ImageButton btnNext, btnFinish;
private ViewPager intro_images;
private LinearLayout pager_indicator;
private int dotsCount;
private ImageView[] dots;
private ViewPagerAdapter mAdapter;

private int[] mImageResources = {
        R.mipmap.abc1,
        R.mipmap.abc2,
        R.mipmap.abc3,
        R.mipmap.abc4,
        R.mipmap.abc5
};

@Override
protected void onCreate(Bundle savedInstanceState)
{
    // To make activity full screen.
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);


    super.onCreate(savedInstanceState);

    setReference();
    setContentView(R.layout.playbutton);

  /*  toolbar.setVisibility(View.GONE);*/

}



public void setReference() {

    view = LayoutInflater.from(this).inflate(R.layout.playbutton,null);

    intro_images = (ViewPager) view.findViewById(R.id.pager_introduction);
    btnNext = (ImageButton) view.findViewById(R.id.btn_next);
    btnFinish = (ImageButton) view.findViewById(R.id.btn_finish);

    pager_indicator = (LinearLayout) view.findViewById(R.id.viewPagerCountDots);

    btnNext.setOnClickListener(this);
    btnFinish.setOnClickListener(this);

    mAdapter = new ViewPagerAdapter(play_button.this, mImageResources);
    intro_images.setAdapter(mAdapter);
    intro_images.setCurrentItem(0);
    intro_images.addOnPageChangeListener(this);
    setUiPageViewController();
}

private void setUiPageViewController() {

    dotsCount = mAdapter.getCount();
    dots = new ImageView[dotsCount];

    for (int i = 0; i < dotsCount; i++) {
        dots[i] = new ImageView(this);
        dots[i].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.nonselecteditem_dot, null));

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

        params.setMargins(4, 0, 4, 0);

        pager_indicator.addView(dots[i], params);
    }

    dots[0].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.selecteditem_dot, null));
}


@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_next:
            intro_images.setCurrentItem((intro_images.getCurrentItem() < dotsCount)
                    ? intro_images.getCurrentItem() + 1 : 0);
            break;

        case R.id.btn_finish:
            finish();
            break;
    }
}

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

}

@Override
public void onPageSelected(int position) {
    for (int i = 0; i < dotsCount; i++) {
        dots[i].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.nonselecteditem_dot, null));
    }

    dots[position].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.selecteditem_dot, null));

    if (position + 1 == dotsCount) {
        btnNext.setVisibility(View.GONE);
        btnFinish.setVisibility(View.VISIBLE);
    } else {
        btnNext.setVisibility(View.VISIBLE);
        btnFinish.setVisibility(View.GONE);
    }
}

@Override
public void onPageScrollStateChanged(int state) {

}
}

这是我的xml(playbutton.xml):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/container"
            android:fitsSystemWindows="true"
            tools:context="com.androprogrammer.tutorials.samples.ViewPagerDemo">

<android.support.v4.view.ViewPager
        android:id="@+id/pager_introduction"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:listitem="@layout/pager_item" />

<RelativeLayout
        android:id="@+id/viewPagerIndicator"
        android:layout_width="match_parent"
        android:layout_height="55dp"

        android:layout_alignParentBottom="true"
        android:layout_marginTop="5dp"
        android:gravity="center">

    <LinearLayout
            android:id="@+id/viewPagerCountDots"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:orientation="horizontal" />

    <ImageButton
            android:id="@+id/btn_next"
            android:layout_width="42dip"
            android:layout_height="42dip"
            android:layout_alignParentRight="true"
            android:layout_marginRight="15dip"
            android:background="@drawable/btn_round_semitransperant"
            android:src="@mipmap/ic_navigation_arrow_forward" />

    <ImageButton
            android:id="@+id/btn_finish"
            android:layout_width="42dip"
            android:layout_height="42dip"
            android:layout_alignParentRight="true"
            android:layout_marginRight="15dip"
            android:background="@drawable/btn_round_semitransperant"
            android:contentDescription="Let's start"
            android:src="@mipmap/ic_navigation_check"
            android:visibility="gone" />

</RelativeLayout>

这是我的ViewPagerAdabter(ViewPagerAdapter.java):

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;


public class ViewPagerAdapter extends PagerAdapter {

private Context mContext;
private int[] mResources;

public ViewPagerAdapter(Context mContext, int[] mResources) {
    this.mContext = mContext;
    this.mResources = mResources;
}

@Override
public int getCount() {
    return mResources.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == ((LinearLayout) object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    View itemView = LayoutInflater.from(mContext).inflate(R.layout.pager_item, container, false);

    ImageView imageView = (ImageView) itemView.findViewById(R.id.img_pager_item);
    imageView.setImageResource(mResources[position]);

    container.addView(itemView);

    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((LinearLayout) object);
}
}

这里是pager_item.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:layout_height="match_parent">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:src="@mipmap/abc1"
    android:id="@+id/img_pager_item"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    android:clickable="false"/>

</LinearLayout>

当我运行我的应用程序并单击我的播放按钮而不是转到滑动视图页面时,我看到了playbutton.xml。

有谁知道问题出在哪里?

1 个答案:

答案 0 :(得分:0)

如果你想显示点分页器指示器,那么我附加链接,你可以通过它轻松实现点寻呼机指示器。我个人推荐它。即使你可以使用无限寻呼机指示器

Follow this link