Articles of 绘制

android – 在Drawable图像上添加一个字符串?

我正在尝试将String添加到Drawable图像中。 我目前没有使用Panel来绘制,我想保持这种方式。 任何想法或我需要调用onDraw()方法? 我的图片显示此代码: Drawable image = getResources().getDrawable(tile_types[tileType]); setImageDrawable(image); 我想在这张图片上添加一个String 。 谢谢。

Android OpenGL ES – 如何绘制填充凹面多边形?

我正在使用OpenGL ES为Android创建2D Openstreetmap渲染应用程序。 不幸的是,我正在努力绘制由大约50个或更多点组成的凹多边形 。 为了实现我的多边形填充,我使用的是GL10.GL_TRIANGLE_FAN: gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertBuff); // size = 2 because 2D gl.glDrawElements(GL10.GL_TRIANGLE_FAN, pointCount, GL10.GL_UNSIGNED_SHORT, indexBuff); 只要我的多边形不是太复杂 , 这种方法就可以正常工作 ,例如绘制像这样的多边形完全没问题: 我的问题是,GL_TRIANGLE_FAN始终从第一个点开始(在本例中为a),然后使用其他2个点绘制一个三角形,直到整个形状完成。 如果必须绘制更复杂的多边形,这可能会导致问题,如您在此处所见:(在此示例中, 流经城市的河流是复杂的多边形 ) 我现在的问题是如何避免这个问题,以便即使复杂的多边形被正确绘制并填充? 问题在于绘制凹多边形。 使用GL_TRIANGLE_STRIP而不是GL_TRIANGLE_FAN时,正确绘制多边形,但只有它们的点通过三角形连接在一起,多边形本身不会被填充。

Android webview与canvas的奇怪问题

我在android webview上绘制了一些canvas图,并使用javascript来隐藏和显示更改图表,并通过重置其innerHTML来更改标题。 标题只是一个普通的html标签” ” , 例如,当我切换图表时,页面无法很好地呈现。 当我选择显示下一个图表并更改标题的innerHTML时,标题似乎“记住”了之前的innerHTML,它看起来像一个文本重叠另一个。 如果我手动更改手机的方向,似乎让webview重绘其内容(不刷新),那么一切都会好的。 对此有何想法? 或者我可以模拟方向更改事件以使我的webview重绘其页面以解决它?

颜色选择器不使用撤消和重做

这是在Android Canvas中实现撤消和重做的代码,并且工作正常。 package com.example.canva; import java.util.ArrayList; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.view.MotionEvent; import android.view.View; public class MainView extends View { private Canvas mCanvas; private Path mPath; private Paint mPaint; private ArrayList paths = new ArrayList(); private ArrayList undonePaths = new ArrayList(); public MainView(Context context) { super(context); setFocusable(true); setFocusableInTouchMode(true); mPaint […]

用动态数据创建“L”形曲线

我想绘制一个纯动态视图,如下图所示 我有两个arraylist List type and List level; type具有名称 (max,type1,type2等), level具有types的标记值 level将始终位于0到1之间, type将是一个字符串, level和type的值将来自服务器。 我们有两个固定标签 – 最小和最大 。 假设我得到.4表示最小值,而.5表示最大值来自服务器,那么所有types (type1,type2,type3等)将介于.4和.5之间。 然后所有其他types应该像弯曲线一样排列,但是如果我们得到min的值是.001和最大.9那么我们有足够的空间来显示其余的标签,在这种情况下我们不需要通过弯曲显示线或标记。 但我不知道如何实现它或从我可以开始的地方。 任何帮助将非常感激。 在此先感谢所有人。 如果以上设计有点复杂,那么请给我一些参考或链接以实现以下设计。 如果我能够做到这个更简单的一个(上图),那将是非常有利的。 我在onCreate()块中尝试过以下代码。 ViewTreeObserver viewTreeObserver = viewbar.getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @SuppressLint({ “NewApi”, “ResourceAsColor” }) @Override public void onGlobalLayout() { viewbar.getViewTreeObserver().removeOnGlobalLayoutListener(this); viewWidth = viewbar.getWidth(); viewHeight = viewbar.getHeight(); DefineType definetype = […]

Android绘制路径

每次调用Draw方法时都不构造路径对象。 每次保持路径对象和清除/设定点更好吗? 更新:还有一个问题 – ‘重置’和’倒带’路径对象之间的区别是什么?

Android – 动态壁纸偏移剪辑

我正在为Android写一个动态壁纸。 为了测试我的基本代码是否正常工作,我在屏幕的左上角显示了一个矩形: canvas.drawRect(0f,0f,50f,50f,paint); 矩形的一半位于主屏幕顶部的栏下方。 我尝试使用以下方法考虑像素偏移: public void onOffsetsChanged(float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset) … canvas.drawRect(0f+xPixelOffset,0f+yPixelOffset,50f+xPixelOffset,50f+yPixelOffset ,paint); 但矩形仍然在条形图下方绘制。 怎么find酒吧的哪里结束所以我可以在它下面画? 干杯, 皮特

将文本置于圆圈中心

我必须在每个圆圈中画一个带数字的圆圈。 我的问题是我无法将文本置于我想要的中心。 为什么中心绘制文字与绘制线条的中心不一样??? sfdzqgs fsdgf dsbfd ds ds fdg sfgnfhggdf wdvfbdfsf dsgfhdr sdgfdshstqrssgqg sqfgshdf dgerfztiaruhisrguhtrqiorgeuqzengohbçzioqrgethriZQGEHOQRAGIRGOGfjfnfgkjkjvfrejneofnbfoig vjlj vvjfndbjfdnj figsn /*enter code here * Author : * date : 06/12/2013 * * * enter code here */ package com.example.ando_dessin_test; //merci a http://supertos.free.fr/supertos.php?page=1066 import java.util.Random; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Align; import […]

与Path.addArc的圆形扇形剪裁蒙版?

我需要创建一个具有圆形扇区形状的剪贴蒙版。 我可以使用以下内容绘制一个: paint.setColor(0x88FF0000); paint.setStyle(Style.FILL); canvas.drawArc(oval, 0, 30, true, paint); 我想用它作为剪切路径,所以我尝试过: Path path = new Path(); path.addArc(oval, 0, 30); canvas.clipPath(path, Op.REPLACE); 但是addArc没有useCenter参数,所以我得到的不是扇区而是段。

Android TextureView /绘图/绘画性能

我试图在Android上使用TextureView制作绘图/绘画应用程序。 我想支持高达4096×4096像素的绘图表面,这对于我的最小目标设备(我用于测试)来说似乎是合理的,这是一款具有漂亮的四核CPU和2GB内存的Google Nexus 7 2013。 我的一个要求是我的视图必须在一个允许它放大和缩小的视图中,这是我编写的所有自定义代码(想想来自iOS的UIScrollView)。 我尝试使用OnDraw的常规View(而不是TextureView ),性能绝对可怕 – 每秒不到1帧。 即使我只使用更改的rect调用了Invalidate(rect) ,也会发生这种情况。 我尝试关闭视图的硬件加速,但没有渲染,我假设因为4096×4096对于软件来说太大了。 然后我尝试使用TextureView并且性能稍微好一点 – 大约每秒5-10帧(仍然很糟糕但更好)。 用户绘制一个位图,然后使用后台线程将其绘制到纹理中。 我正在使用Xamarin,但希望代码对Java人员有意义。 private void RunUpdateThread() { try { TimeSpan sleep = TimeSpan.FromSeconds(1.0f / 60.0f); while (true) { lock (dirtyRect) { if (dirtyRect.Width() > 0 && dirtyRect.Height() > 0) { Canvas c = LockCanvas(dirtyRect); if (c != null) { c.DrawBitmap(bitmap, […]