public class PointPageView extends View { private int mPageSize; private int mPageIndex; private int mPointSize; private int mPointSpan; private int mSelectPointSize; private int mStep; private int mDisplaySize; private int mDisplayIndex; private Paint paint; private void init() { mPointSize = 3; mSelectPointSize = mPointSize; mPointSpan = 3 * mPointSize; mStep = 1; paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.WHITE); } public PointPageView(Context context) { super(context, null); init(); } /** * Used to inflate the Workspace from XML. */ public PointPageView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public void setPageSize(int pageSize) { mPageSize = Math.max(pageSize, 0); mDisplaySize = (int)Math.ceil((double)mPageSize / mStep); invalidate(); } public int getPageSize() { return mPageSize; } public void setPageIndex(int pageIndex) { mPageIndex = Math.min(Math.max(pageIndex, 0), mPageSize - 1); mDisplayIndex = (int)Math.floor((double)mPageIndex / mStep); invalidate(); } public int getPageIndex() { return mPageIndex; } public void setColor(int color) { paint.setColor(color); } public void setPointSize(int size) { mPointSize = size; } public void setSelectPointSize(int size) { mSelectPointSize = size; } public void setPointSpan(int span) { mPointSpan = span; } public void setStep(int step) { mStep = step; } public int getStep() { return mStep; } @Override public void draw(Canvas canvas) { super.draw(canvas); drawAllPoint(canvas); } private void drawAllPoint(Canvas canvas) { canvas.save(); final int paddingLeft = mPointSpan; final int width = getMeasuredWidth(); final int height = getMeasuredHeight(); int radius = mPointSize; int contentWidth = (radius + paddingLeft) * mPageSize; int beginX = (width - contentWidth) / 2; int beginY = height / 2; for (int i = 0; i < mDisplaySize; i++) { if (i == mDisplayIndex) { paint.setAlpha(255); radius = mSelectPointSize; } else { paint.setAlpha(128); radius = mPointSize; } canvas.drawCircle(beginX, beginY, radius, paint); beginX = beginX + radius + radius + paddingLeft; } canvas.restore(); }}
详细解决方案
android下小圆点page控件
热度:96 发布时间:2016-05-01 19:21:03.0
相关解决方案
- <jsp:include page = "<%=fileName>">该怎么解决
- 请问<jsp:include page="" flush="true"/> 不能解释执行的原因
- sitemesh中 <page:applyDecorator/>访问不了struts2中的action?该如何处理
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- Page.RegisterStartupScript的弹出有关问题
- 不能在 Page 回调中调用 Response.Redirect,该如何解决