安卓三角形的自定义按钮
我想制作2个对角三角按钮,例如这个问题. 我该如何实现?我应该用矩形制作可绘制的XML并以某种方式旋转吗?我应该制作图像并仅在数学的帮助下才能在三角零件上单击吗? 解决方案 package com.example.buttonsView; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Path.FillType; import android.graphics.Point; import android.graphics.RectF; import android.graphics.Region; import android.util.AttributeSe
18 2024-04-05
编程技术问答社区
创建一个可以像按钮一样被点击的随机圆圈
所以这是我的困境,我似乎在互联网上的任何地方都找不到.我的问题很简单.我正在为Android创建游戏应用程序.该游戏将在屏幕上生成随机圆,用户可以单击,然后用户单击这些随机圈之一,将发生操作.这就像按钮的功能一样,但由于整个圆圈将可以单击.我将发布生成圆圈的随机数生成器,这不是主要类,这是一个分开的类,扩展了视图. public class DrawingView extends View { public DrawingView(Context context) { super(context); // TODO Auto-generated constructor stub } RectF rectf = new RectF(0, 0, 200, 0); private static final int w = 100; public static int lastColor = Color.BLACK; private final Random ra
2 2024-04-05
编程技术问答社区
在安卓系统中画一个带边框的填充矩形
在Android中有任何方法可以用黑色边框绘制一个填充的矩形.我的问题是canvas.draw()采用一个油漆对象,据我所知,油漆对象在填充和笔触中不能具有不同的颜色.有办法解决吗? 解决方案 您绘制一个带有边框颜色和矩形和边框大小的矩形,您可以更改油漆的颜色,然后再次绘制正常大小的矩形. 其他解决方案 尝试油漆. setstyle (paint.style.中风). Paint paint = new Paint(); Rect r = new Rect(10, 10, 200, 100); @Override public void onDraw(Canvas canvas) { // fill paint.setStyle(Paint.Style.FILL); paint.setColor(Color.MAGENTA); canvas.drawRect(r, paint); // border paint.
22 2024-04-02
编程技术问答社区
安卓BlurMaskFilter在canvas.drawOval中没有效果,而文字被模糊了。
我一直在尝试创建一个自定义视图,该视图模糊了文本下的形状.问题在于,BlurmaskFilter对我在画布上的任何形状没有影响.这是我如何初始化构造函数中的油漆对象: paint = new Paint(0); paint.setColor(0xffffffff); paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL)); mShadowPaint = new Paint(0); mShadowPaint.setColor(0xff333333); mShadowPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL)); 我在on Draw()中称之为这样的函数: canvas.drawOval(mShadowBounds,mShadowPaint); canvas.drawText("hello",
4 2024-04-01
编程技术问答社区
如何避免在创建位图时出现OOTOfMemory问题?
我正在尝试使用此代码从视图创建一个位图: public Bitmap getmyBitmap(View v) { Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); v.draw(c); return b; } ,但我有一个不含内存的问题问题.我可以通过将此选项添加到清单文件 android:gromheap =" true" 来解决它,该选项不建议! ! 我正在考虑视图的回收利用,可能是解决方案? 这是printstack: 11-25 15:31:46.556 2115-2115/com.myproject.android e/dalvikvm-heap: 在4096016字节分配中不记忆. 11-25 15:
0 2024-03-31
编程技术问答社区
安卓:在一个给定的图像上自定义绘制(用SurfaceView)。
我试图将图像加载到SurfaceView,并在此图像上绘制一些划痕. 为此,我创建了一个自定义SurfaceView,MySurfaceView,并具有以下功能: public MySurfaceView(Context context, AttributeSet attrs) { super(context, attrs); mHolder = getHolder(); mHolder.addCallback(this); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(3); mPaint.setColor(Color.WHITE); setWillNotDraw(false); } public void setImageBitmap(Bitmap bitmap) { mBitmap = bitmap; } @Override prote
6 2024-03-31
编程技术问答社区
让一个精灵跳跃
我想仅使用Android(没有游戏引擎)进行精灵\位图跳跃.我无法仅使用画布和视图在Android中找到有关如何在Android中找到的教程,但是我确实找到了XNA的教程( http://www.xnadevelopment.com/tutorials/thewizardjumping/thewewizardjumping.shtml ),我试图使用Android Efforce重新创建它.我能够使用教程代码使角色向左和向右移动,但使其跳跃无法正常工作. 这是我的精灵课: package com.example.spiceup; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Point; import android.view.KeyEvent; import android.wid
4 2024-03-31
编程技术问答社区
在安卓系统中设置画布的不透明度
我正在处理一个在画布上绘制一些透明线的函数,问题是,当屏幕截图显示时,线上有一些"球形". 这是我的代码: canvas = new Canvas(alteredBitmap); paint = new Paint(); paint.setAntiAlias(true); paint.setStrokeWidth(width); paint.setColor(color); paint.setStyle(Paint.Style.STROKE); paint.setStrokeJoin(Paint.Join.ROUND); paint.setStrokeCap(Paint.Cap.ROUND); paint.setAlpha(alpha); matrix_draw = new Matrix(); canvas.drawB
10 2024-03-31
编程技术问答社区
用画布平滑地滚动背景?
欢迎所有 我有一个背景图像,我想要的是要它缓慢向右移动,并且当图像到达屏幕的右端,图像的左起始端的末端必须启动再次显示右侧的开始,作为无限水平滚动. 如何在不生成位图溢出内存异常的情况下实现这一目标? 我尝试用画布绘制两倍的位图...但是它不是光滑的,它的跳跃非常令人毛骨悚然,没有优化: : universeBitmap = Bitmap.createScaledBitmap(universeBitmap, sw, sh, false); universeView = new View(this){ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (paused==true){ canvas.drawBitmap(universeBitm
6 2024-03-31
编程技术问答社区
通过绘制位图使安卓动画变得不流畅
我试图通过在地面支架帆布上绘制几种形状(路径)来动画几种形状(路径). 起初,我将它们描绘成路径,一切都很好,运动很顺利. 随着我增加物体数量(形状)的性能下降,我做了一些 测试以查看不是绘制形状是否绘制位图的速度更快.和..绘画 位图似乎更快(可能更少的计算),但动作是 不光滑.看起来,位图总是从像素到像素,而不是使用反别名,我不知道将状态绘制为半像素. 该方法的签名看起来像: canvas.drawBitmap(cloudBitmap, float left, float top, Paint p); 这表明我应该能够在0.5F像素时绘制位图. 任何想法为什么? 解决方案 我认为这可能是由于绘制的位图而没有过滤以保持平滑度.您是否设置了油漆以使位图平滑?如果不是,那可能是您的解决方案. Paint paint = new Paint(); paint.setFilterBitmap(true);
4 2024-03-31
编程技术问答社区
在画布上快速绘制位图 安卓ics
我一直在开发一个应用程序来吸引ICS Android平板电脑,并且遇到了一个我无法弄清楚如何修复的问题. 问题在于我正确地绘制并实时绘图,但是当我走得真的很快(在真实平板电脑上测试)时,圆圈并不是真正的圆圈,它们看起来像是5或6个侧面的滨海P> 在这里,我声明了位图并将其分配给画布: Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); width = size.x; height = size.y; bm = Bitmap.createBitmap(width, height-50,Bitmap.Config.ARGB_8888); c = new Canvas(bm); 在这里,我用来获取x,y:(layp是"画家"的代码 class SaveOnT
2 2024-03-31
编程技术问答社区
canvas.drawBitmap的位置和大小不好(不能正确放置图像)。
大家好,事先感谢,我希望写得很好,因为我正在执行一个简单的应用程序,该应用程序应该仅在一个以上的一个位图中团结两个位图,问题在于位置图和尺寸侧面的错误,而事实找不到逻辑的背面给了我,实际上是c#中的tengo que代码,而pase java显然是不同的罪过,但具有相同的原理. 我想知道您是否有办法将这些图像的位置和大小弄清楚,就像代码中的这句话一样, 对不起,我的英语不好 codigo java 油漆mpaint; Bitmap image1=BitmapUtils.decodeBase64(Lie.GeFondo().GetImagen()); Bitmap image2=BitmapUtils.decodeBase64(Utilidades.getImagenTomadabase64()); Bitmap image3=BitmapUtils.decodeBase64(Lie.GetBanner().GetImagen());
0 2024-03-31
编程技术问答社区
在安卓画布上绘制旋转的位图,最有效的方法是什么?
我正在开发一个应用程序,在那里我们手工滚动了一些星星地图.因此,我不必摘要说话,这是有问题的应用: https://play.google.com/store/apps/details?id=com.tw.fireballs 如果您在商店列表上查看,则可以看到我们在地平线上方使用图像……主要是因为它看起来超级漂亮.在较低的分辨率设备上,这不是问题,由于涉及较低的像素数量,它们似乎并没有遇到巨大的问题.在我的HTC One或Wifes Nexus 5之类的较高分辨率设备上,当它在屏幕上时,帧速率很大.这还不足以防止我发布它,但是如果可能的话,我想改进它. 我目前只是在使用SurfaceView,并绘制由MSURFACEHORDER.LOCKCANVAS(NULL)获取的画布,因此它不加速硬件.我尝试将其作为常规视图实施,但总的来说,它实际上变慢了,因此,在我进入OpenGL土地之前,我想探索是否可以做些什么来加快速度. 本质上,我们从地平线上的薄(不透明)图像"切片"开始
4 2024-03-31
编程技术问答社区
如何从ARGB_8888位图绘制位图
我是在画布上绘制路径,并在保存和创建从透明位图中创建裁剪的位图时创建透明的位图. 请参阅图像: 在这句话中,我正在画画布上绘制路径,我正在创建透明的位图,根据Startx,Lofesty和distx,Highesty Bitmap cropBitmap =Bitmap.createBitmap(sourceBitmap,startX,lowestY,highestX,highestY); 当我裁剪位图时,我只需要"测试"绘制作物位图.但是它给出了空位图.像这样 在红色框中,我想要从透明位图中裁剪的位图,无论我在画布上画什么. 解决方案 您不能简单地创建透明的位图,并假设位图内的任何内容已成为IT的一部分,这意味着像素是相同的.您的假设有两个问题,数字1,透明位图无济于位图的数据,您最初创建了一个没有颜色的位图,除了它是完全透明的. 这是如何实现此类任务的正确方法的一般代码: class myDrawingView extends View
8 2024-03-31
编程技术问答社区
是否可以在画布上添加一个图像数组,然后删除它们?
是否可以在画布中添加一系列图像,然后删除单个图像?因此,可以说我声明了一个Arraylist并将图像添加到其中.然后,我在画布上绘制它们.如何仅删除一个图像,而不是全部删除? ArrayList myImageList = new ArrayList(); myImageList.add(R.drawable.image1); myImageList.add(R.drawable.image2); myImageList.add(R.drawable.image3); canvas.drawBitmap(myImageList[0], 300, 400, null); canvas.drawBitmap(myImageList[1], 300, 400, null); canvas.drawBitmap(myImageList[2], 300, 400, null); 解决方案 这是不可能的,因为一旦您在画布上绘制了任何图像,该画布的位图的
12 2024-03-31
编程技术问答社区
清除位图和画布
有人知道如何清除位图和画布?我认为有些错误或不完整的代码.例如,在firstActivity.java上,在public void forceredraw()我恢复了一条消息,以在Invalidate()上创建一种方法.如果您需要另一堂课,请告诉我.我真的不知道在哪里可能是我的错误.我正在使用以下代码.它很大,但希望理解它. 这是我的firstActivity.java public class FirstActivity extends Activity implements ColorPickerDialog.OnColorChangedListener { Paint mPaint; private Paint paint = new Paint(); private Path path = new Path(); CanvasView myView; static LinearLayout ll; ImageView imageViewLine; ImageVie
2 2024-03-31
编程技术问答社区
安卓系统。SurfaceView 闪烁
我在绘制到SurfaceView的问题上有一个问题,当移动SurfaceView上的位图映像时,它们会闪烁(或撕裂).在我的代码以前的迭代中,我没有这个问题.但是,既然我终于通过为每个位图使用单独的Canvas来正确缩放位图,那么这个问题就开始了.这些是我自定义SurfaceView类的重要部分: public class DrawingSurface extends SurfaceView implements SurfaceHolder.Callback { public DrawingSurface(Context context, AttributeSet attributeSet, int defStyle) { super(context, attributeSet, defStyle); initialize(context); } private void initialize(Context contex
0 2024-03-31
编程技术问答社区
将安卓画布保存为位图
我想将帆布对象保存在ondraw()方法中,以保存为位图.请不要提出诸如" view.getDrawingCache(true)"之类的答案.我想将画布直接保存到bitmap 解决方案 // first create a mutable bitmap - you determine the size bkg = Bitmap.createBitmap(width, width, Bitmap.Config.ARGB_8888); // create a canvas with that empty bitmap Canvas c = new Canvas(bkg); // do whatever drawing methoods you need....I did a circle c.drawColor(mContext.getResources().getColor(R.color.off_white)); p.setColor(pixel); c.drawCircle(
2 2024-03-31
编程技术问答社区
保存 Android 上自定义视图的截图
我正在尝试保存当前活动的屏幕截图,但不是整个视图,只是其中的一部分. 就我而言: 我的活动 在随附的图像上,我想保存从视图b,c&d. 构建的位图 b是线性布局,C是纯位图,D是相对布局. 对我的理解,要做的一种方法是创建一个画布,将所有"元素"添加到其中,最后具有自定义的位图. 我在以下代码上遇到麻烦: iViewBHeight= viewB.getHeight(); // Prepare empty bitmap as output Bitmap result = Bitmap.createBitmap(bitmapC.getWidth(),bitmapC.getHeight() + iViewBHeight, Config.ARGB_8888); // Flush source image into canvas Canvas canvas = new Canvas(result); // Draw bitmap C to canvas 'und
2 2024-03-31
编程技术问答社区