-
2 votesanswersviews
SurfaceHolder.lockCanvas()返回null
我正在尝试使用以下代码创建一个画布并绘制一个位图: Paint paint = new Paint(); InputStream is = assets.open("card_art" + File.separator + "texture.png"); Bitmap bitmap = BitmapFactory.decodeStream(is); card... -
0 votesanswersviews
unlockCanvasAndPost画布对象必须与lockCanvas先前返回的实例相同
我正在使用SurfaceView和一个线程进行游戏 . 在主线程中,我从SurfaceHolder锁定画布,然后解锁画布并发布锁定时获得的相同画布 . 当我重新启动游戏时,使用简单的意图,我收到以下错误消息: java.lang.IllegalArgumentException: canvas object must be the same instance that was previously... -
5 votesanswersviews
在Android Canvas上围绕字符串设置矩形
所以我使用 Canvas.drawText 在 Canvas 上绘制一些字符串 . 问题是我想在它之前绘制一个矩形,以便文本显示在矩形的中心 . 但我遇到了一个真正的问题 . 提供的 x 和 y 坐标到 drawText 实际上不是真实文本的“左上角”,而是在字符开始的行上 . 有一个方法 Paint.getTextBounds ,它返回一个矩形"with implied origin&... -
0 votesanswersviews
如何从android Bitmap中提取区域
我遇到了以下问题: 我有一个android Bitmap和一组4个坐标,代表一个矩形 . 但是,矩形可以旋转 . 例如,我可以具有坐标0 / 50,50 / 0,100 / 50,50 / 100 . 因此我不能简单地使用Canvas drawBitmap(Bitmap位图,Rect src,RectF dst,Paint paint)函数,因为我无法在rect对象中指定这样的坐标 . 提取这样一... -
-8 votesanswersviews
查找矩形中心[关闭]
如何找到画布中绘制的矩形的中心坐标?我唯一的项目是left,right,bottom和top值 . Rect newRect = new Rect(left, top, right, bottom); canvas.drawRect(newRect, paint); -
1 votesanswersviews
Android从右到左绘制一个矩形(rtl)
我正在android中构建一个绘图应用程序,我在绘制矩形时发现了一个问题 . 应根据语法绘制矩形 new Rect(left, top, right, bottom) 现在我的逻辑工作是通过起点 (startX, startY) 和终点 (endX, endY) 并使用以下方式绘制: new Rect(startX,startY, endX, endY); 假设用户从左上角到右下角绘图 . T... -
0 votesanswersviews
Android canvas可绘制位置转换
我创建了我的自定义视图,其中我放置了一个drawable,我需要改变它的位置 . 我有2个矩形(Rect),它们有顶部,左下,右边 . 现在我需要通过Changing Rect来提供翻译效果 . 让我们假设Rect1的top = 100&Rect2的top = 200.所以我需要在100到200之间进行转换 . 任何帮助表示赞赏 . -
0 votesanswersviews
使用Android,将画布大小限制为使用layoutparams指定的View的大小
创建自定义视图并覆盖它的onDraw() . 如果没有覆盖onMeasure()画布占据整个设备屏幕 . 覆盖onMeasure(),将canvas重新调整为传递给setMeasuredDimension()的维度 . 因此我们可以确保调整画布大小,并且必须在onMeasure()中完成 . 我想将自定义视图的画布重新调整为其LayoutParams(XML或Java)中指定的大小 现... -
2 votesanswersviews
自定义视图:onMeasure Height与Canvas.height
我有一个实现 onMeasure , onSizeChanged 和 onDraw 的自定义视图 . @Override protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){ super.onSizeChanged(xNew, yNew, xOld, yOld); Log.v(TAG, "... -
1 votesanswersviews
在Android上的onDraw之外更新视图的画布
我需要更新自定义视图的一小部分才能显示一个小动画 . 视图的其余部分仅具有静态图像 . 最直接的方法是获取视图的画布并直接更新该特定部分 . 但是无论如何我都无法在view :: onDraw方法之外找到视图的canvas对象 . 我知道的唯一选择是:使用指定的矩形调用view :: invalidate()以最小化绘图闪烁 . 我有代码来更新onDraw中的整个视图 . 因此,最好的办法是检测剪... -
71 votesanswersviews
Android Canvas.drawText
我有一个视图,我在onDraw(Canvas画布)方法中使用Canvas对象进行绘制 . 我的代码是: Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setStyle(Style.FILL); canvas.drawPaint(paint); paint.setColor(android.R.color.black);... -
3 votesanswersviews
Android画布 - 在点之间绘制弧并从路径中删除弧
在我的Android应用程序中,我想提供跟踪字母功能,如下图所示: 在这里,我想提供字母-D的跟踪,为此我需要在用户开始在弧上移动手指时在两点之间绘制弧 . 在这里,如果用户开始从起点移动手指并在终点处停止,那么只有它应该在这些点之间绘制弧 . 在弧形路径上移动手指时也应该显示弧形 . 为此我写了下面的代码 . 我面临的问题是,当在弧形路径上触发 ACTION_UP 事件时,它仍然在画布上显示弧... -
10 votesanswersviews
Android Canvas没有发表意见
在绘制路径时,我遇到了Android Canvas的一些问题 . 我的情况是我有一个相对布局工作,如 Map 视图(不使用谷歌API或类似的东西) . 我必须在该视图上绘制一条路径 . canvas.drawPath(polyPath, borderPaint); 我还必须使用画布绘制其他类型的圆形,多边形 . 每次我们放大或缩小时,我们都会重新计算路径点以匹配缩放级别 . 当使用像Androi... -
0 votesanswersviews
将两个弧线关在一起
我正在设计一个自定义小部件,其尺寸与此蓝色相似:(除了这是一个连续的标尺,而不是一个分裂的标尺) 我试图绘制一个有两个弧的路径: private void drawGauge(Canvas canvas) { canvas.save(Canvas.MATRIX_SAVE_FLAG); float degreesToDraw = positionToDegree();... -
2 votesanswersviews
ANDROID - MapView
有人可以帮我一些关于mapview我试图 Build 的东西 . 我有一个渲染器,它采用画布并在其中绘制位图 . 我创建了一个视图,并在构造函数中创建: bitmap = Bitmap.createBitmap(windowWidth, windowHeight, Bitmap.Config.ARGB_8888); canvas = new Canvas(bitmap); drawable = n... -
0 votesanswersviews
如何在布局中的特定位置添加视图(在java类中描述)?
这是我的xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi... -
3 votesanswersviews
位图不完全适合android中的矩形
我正在使用android-V11开发一个RDP客户端应用程序 . 服务器:屏幕分为4个部分,以每个帧的字节[],左,上,右,下,屏幕分辨率(宽度 - > 1024/1280,高度 - ?768/1024)值发送图像数据对客户 . 客户端:我使用表面视图来显示从服务器接收的图像 . 我需要显示4帧(一个服务器屏幕)以完全适合平板电脑屏幕 . 示例代码: class mySurfaceView ... -
2 votesanswersviews
以编程方式滑动Android视图
我需要什么: 我有一个recyclerview,我想要做的是例如(最后的pseucode): 获取第一个项目视图( myView ) 滑动 myView 至左侧100px - myView.Swipe(translationX, -100px) 滑动 myView 返回原位 myView.Swipe(translationX, 0px) 反正有没有这样做? Important... -
1 votesanswersviews
Android计算Canvas中两点之间的长度或距离
我有一个使用画布绘制的图像 . 我在画布上标记了两个点和它们之间的一条线 . 我需要计算线的长度或两点之间的距离 . 我使用公式Math.sqrt((x2-x1)(x2-x1)(y2-y1)(y2-y1))来计算两点之间的距离,得到一个大约250.82左右的值 . 结果值以像素为单位 . 如何将它们转换为公制值或以mm和cm为单位?我在网上发现了许多像素到厘米的计算器,但它们给出了错误的答案,与两... -
160 votesanswersviews
画布上的Android中心文字
我正在尝试使用下面的代码显示文本 . 问题是文本不是水平居中的 . 当我设置 drawText 的坐标时,它会在此位置设置文本的底部 . 我希望绘制文本,以便文本也水平居中 . 这是一张进一步显示我的问题的图片: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub ... -
0 votesanswersviews
使用ColorMatrixColorFilter时,Canvas不会绘制位图
我在使用ColorMatrixColorFilter修改位图中的颜色像素时遇到了困难 . 如果我使用本地文件系统(jpg)中的位图,它可以工作 . 但是,如果我使用从Buffer创建的位图,则画布上不会绘制任何内容 . 特别是,我使用以下代码来创建ColorMatrix: float matrix[] = new float[] { 0, 0, 1, 0, 0, ... -
3 votesanswersviews
Android位图colorfiltering提供不同的输出
我遇到一个问题,使用ColorMatrixColorFilter提供不同的输出 . 我有这张照片: 它有白色,红色和透明的部分 . 我有一个视图,覆盖了onDraw(Canvas)方法,我绘制了这张图片 . @Override protected void onDraw(Canvas canvas) { canvas.drawBitmap(r, 0, 0, null); ... -
0 votesanswersviews
我想点击按钮时开始绘制线条,当我将鼠标悬停在另一个按钮上时结束绘制
我尝试通过扩展View并覆盖onDraw和onTouchEvent方法来制作自定义视图 . 当customview不在前景时(在其他视图后面绘制线条)可以正常工作,但是当我将它带到前台时,事情变得奇怪,我无法与按钮交互 . 我的问题类似于模式锁定,但是当我检查代码时,人们手动编写按钮命中框(如果手指悬停在某些坐标事件触发器上) . class MainActivity : AppCompatAct... -
0 votesanswersviews
撤消/重做不适用于Android Canvas
撤消和重做功能不适用于下面的代码 . 下面是我的绘图代码实现 . 下面的代码有什么问题吗? public class DrawingArea extends View { private Path drawPath; private Paint drawPaint, canvasPaint; private int paintColor = 0xFF660000; ... -
14 votesanswersviews
画布'drawLine和drawRect不包括结束位置?
令我惊讶的是,我刚刚发现drawLine和drawRect不包括结束位置,即: canvas.drawLine(100, 100, 100, 100, paint); 要么 RectF rect = new RectF(100, 100, 100, 100); canvas.drawRect(rect, paint); 不会画任何东西 . 我的油漆定义如下: Paint paint = new... -
-2 votesanswersviews
当在Android上加载时,圆圈太近了,我想我需要一个位图代码但不要在哪里..任何想法?
`public class Sample extends Activity {@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); setContentView(new Draw(this)); } private class Draw extends View... -
2 votesanswersviews
Android View Canvas onDraw未执行
我目前正在开发一个自定义视图,它在画布上绘制一些图块 . 这些图块从多个文件加载,并在需要时加载 . 它们将由AsyncTask加载 . 如果它们已经加载,它们将被画在画布上 . This is working properly! 如果这些图片被加载,AsyncTask正在触发 view.postInvalidate() 问题是我每次触发view.postInvalidate()时自定义Vie... -
0 votesanswersviews
Android - 我想...点击按钮后,在画布上绘制图像
我点击了arenalayout.xml中的骰子按钮(这个xml由'ArenaLayout'类显示) . 但画布不会绘制字符2.我想...如果我点击骰子按钮然后我画char 2 . 注意:点击骰子按钮后,Arena类中'haveFirstDiced'变量的值变为TRUE . 'Arena'类中的onDraw内部存在条件 . . . 如果'haveFirstDiced'变量具有TRUE值,则... -
0 votesanswersviews
即使结束在起始点,也防止路径关闭
今天我遇到了一个小问题,就是当我开始一个路径并从起点开始绘制弧线时,路径被关闭,因此当我需要时 PathMeasure 开始给我错误的数据(至少根据我的需要)将弧分割为6个部分并提取6个点 . 看看我的意思检查这个 path.arcTo(...360f) 给出空白 path.arcTo(...359.99f) 略微接近,但仍然是"mathematically"不准确 我能做什么... -
0 votesanswersviews
如果曲面不在前景中,SurfaceHolder.lockCanvas将返回null
我目前正在使用Android中的LiveWallpaper进行测试 . 我在画布上使用看起来像这样的代码绘制一些东西: final SurfaceHolder holder = getSurfaceHolder(); Canvas c = new Canvas(); c = holder.lockCanvas(); // c becomes null c.save(); c.drawBitmap(...