52得票1回答
使用LinearLayout的自定义小部件无法获取onDraw()方法

我正在通过扩展 LinearLayout 创建自定义小部件:public class MyWidget extends LinearLayout { private static Paint PAINT = new Paint(Paint.ANTI_ALIAS_FLAG); s...

52得票7回答
如何在画布上绘制两点之间的弧线?

我在画布上有两个点,现在我能够像下面这张图片一样通过使用以下代码在这些点之间画一条直线: canvas.drawLine(p1.x, p1.y, p2.x, p2.y, paint); 我想要像下面这张图片一样在两个点之间画弧线。 我该如何实现这样的效果。

47得票15回答
尝试获取ImageView中图像的显示大小

我试图获取图像视图中显示的实际尺寸。实际上,我的图像比屏幕大,而且ImageView正在调整图像大小以显示它。我正在寻找这个新的大小。我尝试在自定义视图中覆盖ImageView的onDraw方法,但是获取的高度和宽度不正确...public class LandImageView extend...

38得票6回答
View.onDraw() --- 什么时候被调用?

我在扩展的View的onDraw()方法中放置了一个Log.d()调用,以便查看它被调用的频率和时间。它在视图实例化时被调用,这并不奇怪。但是我注意到,它在每次由onTouchEvent()处理的触摸操作中都会被调用,尽管我的代码与图形完全无关。然而,在Views的文档中,我似乎找不到有关on...

36得票3回答
PorterDuffXfermode:清除位图的一个部分

目标是绘制一个位图并覆盖在某物之上,然后绘制形状以擦除位图下面的区域。我有一个概念验证来尝试理解如何进行此操作。我发现使用以下方法的众多提示: android.graphics.PorterDuff.Mode.CLEAR 下面的代码创建了一个蓝色背景的屏幕,并添加了一个自定义视图。该视图...

22得票6回答
覆盖 onDraw() 还是 draw() 方法?

我的项目基于SurfaceView,目前为止,我把所有的渲染都放在了覆盖(overriding)的onDraw中。一切看起来还好。 但是,我刚刚更新了我的SDK,现在它告诉我: 可疑的方法调用;应该调用“draw”而不是“onDraw” 请问有人能解释这两者之间的区别吗? 我在...

18得票2回答
安卓自定义视图中的位图内存泄漏问题

我有一个自定义视图,需要绘制两个位图:一个是背景图片,代表地图的图像;另一个是指针,将被绘制在画布的左上角位置。 这两张图片都在 onDraw 方法中绘制,并且在包含该视图的活动期间保持不变。一段时间后,我会收到“OutOfMemoryError: bitmap size exceeds V...

17得票4回答
如何制作渐变动画?

如何将渐变从颜色#1动画到颜色#2?类似于: 我打算将其用作单位的生命条(因此,它将是以绿色开始并以红色结束的有限动画)

16得票2回答
Android 梯度扫描

我有一个定义为SweepGradient的渐变色circle_paint.setShader(new SweepGradient(getWidth()/2, getHeight()/2, new int[] { circle_start_color, circle_end_color}, ne...

16得票3回答
安卓多个SurfaceView

我正在尝试在一个屏幕上使用3个SurfaceViews,一个在上半部分(BoardView),一个在下半部分(StatusView),最后一个作为顶部上方的额外层(TileView)(请参见main.xml)。 我创建了一个名为MySurfaceView的类,该类由BoardView、Sta...