Android Page Indicator für Sliding Image

Ich arbeite an einem Projekt. Ich möchte ein Schiebebild mit Seitenanzeige anzeigen. Sowohl die Diashow als auch die Seitenanzeige werden in meiner App angezeigt. Wenn ich durch das Bild scrolle, ändern sich die Bilder erfolgreich und funktionieren einwandfrei. aber meine Seitenanzeige ändert sich nicht. Es macht mich verwirrt, wenn ich den Code in Eclipse laufen lasse, es funktioniert gut, aber in Android Studio nicht. hier ist mein PageIndicator:

public class PageIndicator extends ImageView{

private Paint            fillPaint;
private Paint            strokePaint;
private int              count;
private int              indicatorWidth;
private static final int CIRCLE_RADIUS       = 8;
private static final int CIRCLE_SPACE        = 10;
private static final int CIRCLE_STROKE_COLOR = Color.GRAY;
private static final int CIRCLE_FILL_COLOR   = Color.LTGRAY;
private int              screenWidth;
private float            offsetX;
private int              currentPageIndex;
private float            percent;


public PageIndicator(Context context) {
    super(context);
    initialize();
}


public PageIndicator(Context context, AttributeSet attrs) {
    super(context, attrs);
    initialize();
}


public PageIndicator(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    initialize();
}


private void initialize() {
    fillPaint = new Paint();
    fillPaint.setStyle(Style.FILL);
    fillPaint.setColor(CIRCLE_FILL_COLOR);
    fillPaint.setAntiAlias(true);

    strokePaint = new Paint();
    strokePaint.setStyle(Style.STROKE);
    strokePaint.setColor(CIRCLE_STROKE_COLOR);
    strokePaint.setAntiAlias(true);


    screenWidth = G.appContext.getResources().getDisplayMetrics().widthPixels;
}


public void setIndicatorsCount(int value) {
    count = value;
    computeIndicatorWidth();
}


public void setCurrentPage(int value) {
    currentPageIndex = value;
}


public void setPercent(float percent) {
    this.percent = percent;
}


@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    for (int i = 0; i < count; i++) {
        Paint paint = strokePaint;
        float radius = CIRCLE_RADIUS;

        boolean canDrawFill = false;
        if (i == currentPageIndex) {
            fillPaint.setAlpha((int) ((1.0f - percent) * 255));
            //radius *= 2;
            canDrawFill = true;
        }

        if (percent > 0) {
            if (i == currentPageIndex + 1) {
                fillPaint.setAlpha((int) (percent * 255));
                canDrawFill = true;
            }
        }
        canvas.drawCircle(offsetX + i * (CIRCLE_RADIUS + CIRCLE_SPACE), 10, radius / 2.0f, strokePaint);

        if (canDrawFill) {
            canvas.drawCircle(offsetX + i * (CIRCLE_RADIUS + CIRCLE_SPACE), 10, radius / 2.0f, fillPaint);
        }
    }
}


private void computeIndicatorWidth() {
    indicatorWidth = count * (CIRCLE_RADIUS + CIRCLE_SPACE);
    offsetX = (screenWidth - indicatorWidth) / 2;
}

}

Und My ImagePageAdapter

public class ImagePagerAdapter extends PagerAdapter {

public ArrayList<Integer> imageIds;
public ArrayList<String> imageTitles;

public ImagePagerAdapter(ArrayList<Integer> imageIds , ArrayList<String>     imageTitles){

    this.imageIds = imageIds;
    this.imageTitles = imageTitles;


}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return imageIds.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
    // TODO Auto-generated method stub
    return view.equals(object);
}



@Override
public Object instantiateItem(ViewGroup container, final int position) {
    // TODO Auto-generated method stub

    View view = G.inflater.inflate(R.layout.sliding, null);
    ImageView image = (ImageView) view.findViewById(R.id.image_sliding);
    TextView title = (TextView) view.findViewById(R.id.title_sliding);

    image.setImageResource(imageIds.get(position));
    title.setText(imageTitles.get(position));




    container.addView(view);

    return view;
}



@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    // TODO Auto-generated method stub

    container.removeView((View)object );


}


}

Und meine Aktivität:

public class HomeActivity extends AppCompatActivity {

ViewPager pager;
PageIndicator indicator;
ArrayList<Integer> imageIds = new ArrayList<>();
ArrayList<String> imageTitles = new ArrayList<>();

@TargetApi(12)
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_activity);
    pager = (ViewPager)findViewById(R.id.Pager);
    indicator = (PageIndicator)findViewById(R.id.Indicator);

    indicator.setIndicatorsCount(3);

    addImageSliding("ofogh_mehr","به افق مهر خوش آمدید");
    addImageSliding("sliding_1","تصویر 2");
    addImageSliding("sliding_2","تصویر 3");




    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub

        }

        public void onPageScrolled(int startIndex, float percent, int pixel) {
            // TODO Auto-generated method stub
            indicator.setPercent(percent);
            indicator.setCurrentPage(startIndex);
            Log.i("Scroll", percent+ " " + startIndex  );

        }

        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub

        }
    });


    ImagePagerAdapter adapter = new ImagePagerAdapter(imageIds, imageTitles);
    pager.setAdapter(adapter);

}

@Override
protected void onResume() {
    super.onResume();
    G.currentActivity = this;
}

private  void addImageSliding(String name, String title){

    int imageID = getApplicationContext().
            getResources().
            getIdentifier(name,
                    "drawable", getApplicationContext().getPackageName());
    imageIds.add(imageID);
    imageTitles.add(title);


}
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage