android random_math.cos java_canvas.drawbitmap

JavaAndroid

2个回答

写回答

菊@子

2025-06-06 10:38

+ 关注

Android
Android

最近写电子书程序,设计到对图像的处理,主要是对Bitmap的处理,所以有一点小小的心得,拿出来跟大家分享一下。canvas。drawbitmap要把一个Bitmap画到View上,必须用到的类有Android。graphics。Canvas,和Android

graphics。Bitmap。方法很简单,在View里面,重载onDraw(Canvascanvas)方法,然后用canvas。drawBitmap()方法,将其画在屏幕上。canvas。drawbitmappublicclassMyViewextendsView{privateBitmapmBitmap;publicMyView(Contextcontext){super(context);initialize();}privatevoidinitialize(){Bitmapbmp=((BitmapDrawable)getResources()。

getDrawable(R。drawable。show))。getBitmap();mBitmap=bmp;}@OverrideprotectedvoidonDraw(Canvascanvas){//super。onDraw(canvas);//当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。

屏幕
屏幕

canvas。drawBitmap(mBitmap,0,0,null);}}结果:原图:虽然这仅仅只是第一步,但是很鼓舞人心呢,呵呵。上面是直接将原图画在屏幕上,没有任何处理,因为图片比屏幕大,所以超出的部分看不到。我们试着将图片拉伸以填满整个屏幕

publicclassMyViewextendsView{privateBitmapmBitmap;privateMatrixmMatrix=newMatrix();privatestaticintmScreenWidth;privatestaticintmScreenHeight;publicMyView(Contextcontext){super(context);initialize();}privatevoidinitialize(){DisplayMetricsdm=getResources()。

getDisplayMetrics();mScreenWidth=dm。widthPixels;mScreenHeight=dm。heightPixels;Bitmapbmp=((BitmapDrawable)getResources()。

getDrawable(R。drawable。show))。getBitmap();mBitmap=Bitmap。createScaledBitmap(bmp,mScreenWidth,mScreenHeight,true);}@OverrideprotectedvoidonDraw(Canvascanvas){//super。

onDraw(canvas);//当然,如果界面上还有其他元素需要绘制,只需要将这句话写上就行了。canvas。drawBitmap(mBitmap,0,0,null);}}显示结果:下面一篇将介绍对Bitmap的一些操作。

举报有用(4分享收藏

旎旎99

2025-06-06 10:39

+ 关注

Android开发中,Random类用于生成伪随机数,而Math.cosJava标准库中的一个静态方法,用于计算给定角度的余弦值。这两个功能通常用于不同的场景,但可以结合使用来实现一些有趣的动画效果或图形生成。

关于Java Canvas.drawBitmapdrawBitmapCanvas类中的一个方法,用于在画布上绘制位图。位图是一种常见的图像格式,可以用来显示图片或作为纹理应用于图形中。

如果你想在Android中使用RandomMath.cos来操作位图,例如随机生成一些具有波浪效果的纹理,你可以先生成一个空白的位图,然后通过修改其像素来实现。以下是一个简单的示例代码片段:

<code>Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); PAInt pAInt = new PAInt(); pAInt.setcolor(Color.WHITE); pAInt.setStyle(PAInt.Style.FILL); canvas.drawRect(0, 0, width, height, pAInt);

Random random = new Random(); for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) // 使用Math.cos来创建波浪效果 int waveHeight = (int) (Math.cos(x / 50.0) * 20); int color = (y < waveHeight + height / 2) ? Color.BLUE : Color.WHITE; bitmap.setPixel(x, y, color); } } canvas.drawBitmap(bitmap, 0, 0, null); </code>

这段代码创建了一个空白的位图,并在其上绘制了一个简单的波浪效果。你可以根据需要调整Math.cos中的参数和颜色,以生成不同的效果。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号