MagicIndicator
MagicIndicator copied to clipboard
我如何画一个矩形和您的demo里面的viewpage指示器一样 和那么圆一起移动
mPaintIndicator.setStyle(Paint.Style.FILL); if (mCirclePoints.size() > 0) { canvas.drawCircle(mIndicatorX, (int) (getHeight() / 2.0f + 0.5f), mRadius, mPaintIndicator); } 下面是我画矩形的代码 if (mCirclePoints.size() > 0) { mPaintIndicator.setAntiAlias(true);// 设置画笔的锯齿效果
RectF oval3 = new RectF(80, 260, 200, 300);// 设置个新的长方形
canvas.drawRoundRect(oval3, 20, 15, mPaintIndicator);//第二个参数是x半径,第三个参数是y半径
}
设置一下radius和高度就好了,不用画的,效果是一个蓝色方块移动,参考以下getIndicator方法 例子:
CommonNavigator commonNavigator = new CommonNavigator(context);
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return data == null ? 0 : data.size();
}
@Override
public IPagerTitleView getTitleView(Context context, final int index) {
ClipPagerTitleView clipPagerTitleView = new ClipPagerTitleView(context);
clipPagerTitleView.setText(tabName[index]);
clipPagerTitleView.setTextSize(UIUtil.dip2px(context, 14));
clipPagerTitleView.setTextColor(Color.parseColor("#7f020004"));
clipPagerTitleView.setClipColor(Color.WHITE);
clipPagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
vpJdq.setCurrentItem(index);
}
});
return clipPagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator indicator = new LinePagerIndicator(context);
float navigatorHeight = context.getResources().getDimension(R.dimen.common_navigator_height) + 5;
float borderWidth = UIUtil.dip2px(context, 1);
float lineHeight = navigatorHeight - 2 * borderWidth;
indicator.setLineHeight(lineHeight);
indicator.setRoundRadius(0);
indicator.setYOffset(borderWidth);
indicator.setColors(Color.parseColor("#40c4ff"));
return indicator;
}
});
commonNavigator.setAdjustMode(adjustMode);
magicIndicator.setNavigator(commonNavigator);
如果是移出屏幕外的话,左右两边就变成平的了,不是圆角,有没办法设置成左右两边移出屏幕外也是圆角