欢迎界面的下方指示位置圆
2016-01-08 13:47
246 查看
package com.zzw.drawable; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; public class Circle extends View { private int posfirst = 0; // 圆球的数量 private int count = 0; // 用这个构造方法,用其他会报错 public Circle(Context context, AttributeSet attrs) { super(context, attrs); } // 根据情况设置圆球数量 public void setCount(int a) { count = a; } public void choose(int pos) { posfirst = pos; // 执行这个方法 会重新绘图 this.invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); // 去掉图形的锯齿,使得圆球更圆滑 p.setAntiAlias(true); // 获取屏幕X Y坐标 float w = getWidth(); float h = getHeight(); // 圆球的间距(针对各种机型屏幕适配) int juli = (int) (w / 7); // 设置圆球的半径(针对各种机型屏幕适配) float radius = w / 50; for (int i = 0; i < count; i++) { if (i == posfirst) { p.setColor(Color.RED); // 画一个红色圆形 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius + w / 142, p); } else { p.setColor(Color.GRAY); // 画一个灰色圆形 canvas.drawCircle((w - (count - 1) * juli) / 2 + juli * i, (float) (h * 0.9), radius, p); } } } }
使用的时候:
<?xml version="1.0" encoding="utf-8"?> <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" tools:context="com.zzw.imagedaohang.WelcomeActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <com.zzw.drawable.Circle android:id="@+id/circle" android:layout_width="match_parent" android:layout_height="match_parent"> </com.zzw.drawable.Circle> </RelativeLayout>
相关文章推荐
- 从汇编语言角度理解C语言栈帧
- keepalived日志显示脚本能执行成功,但是amoeba程序没启动起来,单独执行脚本amoeba能启动成功,放到keepalived里面启动不起来
- 【HDOJ】1979 Fill the blanks
- Qt5学习笔记——QRadioButton与QButtonGroup
- SqlServer 高版本数据库 降级
- c# 后台get post请求
- 阿里云服务器操作
- 活动的生命周期
- 《实例化需求》
- BZOJ 3223 文艺平衡树 splay
- Android5.0+(CoordinatorLayout)
- python学习之数据类型
- 软件项目开发的标准化文档编写
- C#中怎么使控件随着窗体的大小改变而改变
- MFC捕捉子控件鼠标消息莫名奔溃
- 【CSS】文本水平对齐[CSS权威指南 学习笔记]
- [转]UML类图、关系及其JAVA代码
- 如何在UICollectionView reloadData后找到的某个cell
- Android Handler内存泄露
- 牛客网-《剑指offer》-二进制中1的个数