Articles of 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://sofzh.miximages.com/android/zkpu1l.jpg 有定位问题的字符,文字包含’g’,’j’,’q’等: http://sofzh.miximages.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”, […]

如何在canvas上设置animation – android

是否可以将animation师附加到路径? 有没有其他方法在canvas上绘制animation线条? 在我发布之前我搜索了这个,但没有任何关于这一点。 在这里和这里的另外两个post有解决方案,并不适合我。 谢谢! 我在onDraw方法中发布我的代码以指定我想要的内容。 paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(2); paint.setColor(Color.BLACK); Path path = new Path(); path.moveTo(10, 50); // THIS TRANSFORMATIONS TO BE ANIMATED!!!!!!!! path.lineTo(40, 50); path.moveTo(40, 50); path.lineTo(50, 40); // and so on… canvas.drawPath(path, paint); 有任何想法吗????

覆盖位图时出现错误android.graphics.Canvas.throwIfRecycled

我试图覆盖使用以下方法在canvas上的图像: private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { bmOverlay = Bitmap.createBitmap(70, 70, Bitmap.Config.RGB_565); canvas = new Canvas(bmOverlay); canvas.drawBitmap(bmp1, 0, 0, null); //line 179 canvas.drawBitmap(bmp2, 0, 0, null); return bmOverlay; } 但是,我的应用程序不断崩溃,日志读取: java.lang.NullPointerException在android.graphics.Canvas.throwIfRecycled(Canvas.java:954)在android.graphics.Canvas.drawBitmap(Canvas.java:980)在com.MyApp.overlay(MyApp.java:179) 谁能帮忙?

Android浏览器中的SVG

我知道它本身不支持,但有没有JS Shims渲染成canvas对象或什么东西,可以让我在原生的Android浏览器呈现SVG? (不是歌剧等,因为我想避免让用户需要安装另一个浏览器)

你能解释TextView + Gravity + SingleLine和Canvas的行为吗?

我有一个自定义的TextView,它的onDraw方法重写,在文本视图周围绘制一个红色的边框。 当我将重力设置为其他值时 , ANDLineLine = true :不绘制边框。 这有什么理由吗? 有没有解决办法? 下面的截图说明了这个问题:第二个textView没有边框 TL表示TOP | LEFT; C表示CENTER; SL表示单线; T的意思是真的; F表示错误 这里是代码(可以复制/粘贴和运行 – 不需要布局文件) import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.view.Gravity; import android.widget.RelativeLayout; import android.widget.TextView; public class MyActivity extends Activity { private final int TEXT_VIEW_WIDTH_PX = 400; private final int TEXT_VIEW_HEIGHT_PX = […]

android如何旋转canvas矩形

我创build一个特定的大小的矩形,现在我想旋转到45度,我用canvas.rotate,matrix,但不工作。 如何在Android中旋转canvas的正确方法? 我很好奇Path.Direction.CW,是否用于旋转? 但我没有看到path()中的任何旋转函数 paint.setAntiAlias(true); paint.setStrokeWidth(2); paint.setColor(Color.BLUE); paint.setAlpha(75); Path path = new Path(); path.addRect(166, 748, 314, 890, Path.Direction.CW); canvas.rotate(45); canvas.drawPath(path, paint);