1.java.lang.Math类常用的常量和方法:
Math.PI 记录的圆周率
Math.E 记录e的常量 Math.abs 求绝对值 Math.sin 正弦函数 Math.asin 反正弦函数 Math.cos 余弦函数 Math.acos 反余弦函数 Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数 Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度 Math.ceil 得到不小于某数的最大整数 Math.floor 得到不大于某数的最大整数例如:Math.floor(12.7) =12.0
Math.ceil(12.7) =13.0
ceil()是天花板,即向上取整。floor是地板,向下取整。round是四舍五入。
Math.IEEEremainder 求余
Math.max 求两数中最大 Math.min 求两数中最小 Math.sqrt 求开方 Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常Math.sqrt(x):平方根
Math.pow(x,y):x的y次方 Math.exp 求e的任意次方 Math.log10 以10为底的对数 Math.log 自然对数 Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小) Math.round 同上,返回int型或者long型(上一个函数返回double型) Math.random 返回0,1之间的一个随机数java.math.BigInteger(大整数):
BigInteger bi1=new BigInteger("1234567890123456890"); BigInteger bi2=BigInteger.valueOf(123L); bi1=bi1.add(bi2);//b1+b2 bi1=bi1.multiply(bi2);//b1*b2 bi1=bi1.subtract(bi2);//b1-b2 bi1=bi1.divide(bi2);// b1/b2java.math.BigDecimal(大浮点数):
BigDecimal bd = new BigDecimal("3.1415926"); bd = bd.setScale(2,BigDecimal.ROUND_DOWN);//取3.1415926小数点后面二位
2.Java获取随机数
随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字。或者随即生成一个不定长度的数字、或者进行一个模拟的随机选择等等。Java提供了最基本的工具,可以帮助开发者来实现这一切。
2.1、Java随机数的产生方式
在Java中,随机数的概念从广义上将,有三种。 1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。 2、通过Math.random()返回一个0到1之间的double值。 3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。2.2、Random类API说明
2.2.1、Java API说明 Random类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式对其进行修改(请参阅 Donald Knuth 的《The Art of Computer Programming, Volume 2》,第 3.2.1 节)。 如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证属性的实现,为类 Random 指定了特定的算法。 很多应用程序会发现 Math 类中的 random 方法更易于使用。 2.2.2、方法摘要 Random() 创建一个新的随机数生成器。 Random(long seed) 使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。 protected int next(int bits) 生成下一个伪随机数。 boolean nextBoolean() 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。 void nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的字节数组中。 double nextDouble() 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0之间均匀分布的 double 值。 float nextFloat() 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0 之间均匀分布的 float 值。 double nextGaussian() 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。 int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 int nextInt(int n) 返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。 long nextLong() 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。 void setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。2.3、Random类使用说明
2.3.1、带种子与不带种子的区别 Random类使用的根本是策略分带种子和不带种子的Random的实例。 通俗说,两者的区别是: 带种子的,每次运行生成的结果都是一样的。 不带种子的,每次运行生成的都是随机的,没有规律可言。 2.3.2、创建不带种子的Random对象 Random random = new Random(); 2.3.3、创建不带种子的Random对象 有两种方法: 1) Random random = new Random(555L); 2) Random random = new Random(); random.setSeed(555L);
3.Color(颜色)类
1.颜色的常用表示方法
Android系统中颜色的常用表示方法有以下4种:
(1)int color = Color.BLUE;
(2)int color = Color.argb(150,200,0,100);
(3)int color = Color.parseColor("#ffffff");(150,200,0,100);
(4)在xml文件中定义颜色;
2.颜色常量及其表示的颜色
在实际应用当中,我们常用的颜色有以下一些,其颜色常量及其表示的颜色如下所示:
Color.BLACK 黑色
Color.GREEN 绿色
Color.BLUE 蓝色
Color.LTGRAY 浅灰色
Color.CYAN 青绿色
Color.MAGENTA 红紫色
Color.DKGRAY 灰黑色
Color.RED 红色
Color.YELLOW 黄色
Color.TRANSPARENT 透明
Color.GRAY 灰色
Color.WHITE 白色
4.Paint类介绍
Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。
1.图形绘制
setARGB(int a,int r,int g,int b); 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。 setAlpha(int a); 设置绘制图形的透明度。 setColor(int color); 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。 setAntiAlias(boolean aa); 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。 setDither(boolean dither); 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰 setFilterBitmap(boolean filter); 如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示速度,本设置项依赖于dither和xfermode的设置 setMaskFilter(MaskFilter maskfilter); 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等 setColorFilter(ColorFilter colorfilter); 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果 setPathEffect(PathEffect effect); 设置绘制路径的效果,如点画线等 setShader(Shader shader); 设置图像效果,使用Shader可以绘制出各种渐变效果 setShadowLayer(float radius ,float dx,float dy,int color); 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色 setStyle(Paint.Style style); 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE setStrokeCap(Paint.Cap cap); 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式Cap.ROUND,或方形样式Cap.SQUARE setSrokeJoin(Paint.Join join); 设置绘制时各图形的结合方式,如平滑效果等 setStrokeWidth(float width); 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度 setXfermode(Xfermode xfermode); 设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果2.文本绘制
setFakeBoldText(boolean fakeBoldText); 模拟实现粗体文字,设置在小字体上效果会非常差 setSubpixelText(boolean subpixelText); 设置该项为true,将有助于文本在LCD屏幕上的显示效果 setTextAlign(Paint.Align align); 设置绘制文字的对齐方向 setTextScaleX(float scaleX); 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果 setTextSize(float textSize); 设置绘制文字的字号大小 setTextSkewX(float skewX); 设置斜体文字,skewX为倾斜弧度 setTypeface(Typeface typeface); 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等 setUnderlineText(boolean underlineText); 设置带有下划线的文字效果 setStrikeThruText(boolean strikeThruText); 设置带有删除线的效果
5.Canvas(画布)类
画笔属性设置好之后,还需要将图像绘制到画布上。Canvas类可以用来实现各种图形的绘制工作,如绘制直线、矩形、圆等等。Canvas绘制常用图形的方法如下:
绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
绘制字符:canvas.drawText(String text, float x, float y, Paint paint);
绘制图形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);