Articles of canvas

在canvas上绘图 – PorterDuff.Mode.CLEAR绘制黑色! 为什么?

我正在尝试创建一个简单的自定义视图:有一个由弧路径显示的位图 – 从0deg到360deg。 学位正在随着一些FPS而变化。 所以我使用重写的onDraw()方法创建了一个自定义视图: @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC)); canvas.drawArc(arcRectF, -90, currentAngleSweep, true, arcPaint); arcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, circleSourceRect, circleDestRect, arcPaint); } arcPaint初始化如下: arcPaint = new Paint(); arcPaint.setAntiAlias(true); arcPaint.setColor(Color.RED); // Color doesn’t matter 现在,一切都很棒,但是…整个视图中的背景是黑色的。 如果我设置canvas.drawColor(…, PorterDuff.Mode.DST)并省略canvas.drawBitmap() – 则在透明背景上正确绘制弧。 我的问题是 – 如何设置PorterDuff模式使其与透明度一起工作? 当然, bitmap是带有alpha通道的32位PNG。

drawBitmap()和setPixels():有什么步伐?

可以请有人解释我(ASCII非常受欢迎) stride参数在Canvas.drawBitmap()和Bitmap.setPixels()/getPixels()什么? 我理解这是一种跳过colors数组中元素的方法,但是如何?

在Android Canvas上包装长文本

我有一个自定义控件,可以直接在canvas进行大量2D绘图。 这个绘图的一些是文本,所以我使用Canvas.drawText()方法。 我想在一些边界内绘制文本 – 左上角,某个最大宽度和最大行数。 在绘制文本后,我想知道它花了多少行。 是否有内置函数在边界内绘制文本进行合理分割? 如果没有,是否有这样做的标准配方?

如何设置paint.setColor(R.color.white)

我有一个使用Paint和Canvas绘制对象的自定义View。 我的问题是如何设置: int color = R.color.white; paint.setColor(color); 来自我的/res/valuse/color.xml,其中包括像 #FFFFFF #000000 …

Android游戏,帆布还是opengl?

我要写一个Android游戏,我必须在canvas或opengl之间进行选择。 我读过canvas没有很好的帧率,但有什么好处? 想象一下,你要写一个愤怒的小鸟游戏,canvas帧速度是否足够?

如何擦除Canvas上的先前绘图?

我有一张背景图片(地图),我需要定期绘制你在这​​里的图标。 我使用Canvas在地图上绘制图标。 假设在单击按钮时触发绘制过程(请参阅下面的代码),如何删除上一个绘图? private void displayUserPos(Point userPos) { Bitmap marker = BitmapFactory.decodeResource(getResources(), R.drawable.ic_yah); canvas.drawBitmap(marker, (float)userPos.getX(), (float)userPos.getY(), null); imgView.setImageBitmap(fmOverlay); }

Android中的“preconcat”矩阵是什么意思?

在审核中: http : //developer.android.com/reference/android/graphics/Canvas.html 我在想 translate():“使用指定的翻译预先锁定当前矩阵” – 这是什么意思? 我无法在互联网上的任何地方find“preconcat”的好定义! 我能find它的唯一地方是在Android源码中 – 我开始怀疑它们是否成功了? 🙂 我熟悉“concat”或连接,这是附加的,那么什么是pre-concat?

Android canvas drawText文本的y位置

我正在使用Canvas创建一个带有一些背景和一些文本的Drawable。 drawable用作EditText中的复合drawable。 文本是通过canvas上的drawText()绘制的,但在某些情况下,我确实遇到了绘制文本的y位置问题。 在这些情况下,某些字符的部分被截断(参见图像链接)。 没有定位问题的字符: http://img.androidcookie.com/android/zkpu1l.jpg 有定位问题的字符,文字包含’g’,’j’,’q’等: http://img.androidcookie.com/android/vrqxja.jpg 您可以在下面find重现问题的代码段。 有没有专家知道如何确定y位置的正确偏移量? public void writeTestBitmap(String text, String fileName) { // font size float fontSize = new EditText(this.getContext()).getTextSize(); fontSize+=fontSize*0.2f; // paint to write text with Paint paint = new Paint(); paint.setStyle(Style.FILL); paint.setColor(Color.DKGRAY); paint.setAntiAlias(true); paint.setTypeface(Typeface.SERIF); paint.setTextSize((int)fontSize); // min. rect of text Rect textBounds = new Rect(); paint.getTextBounds(text, 0, text.length(), […]

如何在canvas上绘制文字?

我正在尝试为android开发一个简单的饼图类。 现在,它可以获取标签和值的映射并绘制饼图。 我还没有为馅饼添加图例,这是我需要将文本放在屏幕角落的小矩形附近的地方。 任何帮助表示感谢,因为我是Android开发人员的新手。

从WebView保存图像

我会尽量做空 – 所以我正在创建这个应用程序,将图像上传到自定义Webview ,绘制canvas并保存。 现在我成功地执行了所有操作,直至保存它。 我尝试了很多不同的方法,但都没有。 我从Url保存未经编辑的图像: public void DownloadFromUrl(String fileName) { //this is the downloader method try { URL url = new URL(wv2.getUrl()); //you can write here any link File file = new File(fileName); Canvas canvas = new Canvas(); wv2.draw(canvas ); long startTime = System.currentTimeMillis(); Log.d(“ImageManager”, “download begining”); Log.d(“ImageManager”, “download url:” + url); Log.d(“ImageManager”, […]