Canvas ShapeDrawable子类经常被幽灵三角形困扰
我正在尝试扩展/子类ShapeDrawable。结果真是令人费解。我的简单代码应该创建一个小点和一个小三角形。事实上,这些形状确实出现在地图视图上,在那里绘制它们。然而,第二个三角形的形状也有所不同,我不知道这是为什么。为什么我的ShapeDrawable子类会创建一个额外的三角形 示例屏幕截图--->>Canvas ShapeDrawable子类经常被幽灵三角形困扰,canvas,shapedrawable,Canvas,Shapedrawable,我正在尝试扩展/子类ShapeDrawable。结果真是令人费解。我的简单代码应该创建一个小点和一个小三角形。事实上,这些形状确实出现在地图视图上,在那里绘制它们。然而,第二个三角形的形状也有所不同,我不知道这是为什么。为什么我的ShapeDrawable子类会创建一个额外的三角形 示例屏幕截图--->> 我想这个问题可能太难了。也许在这个子类之外的某个地方出了问题。(但奇怪的是,通过删除这里的绘图逻辑,重影三角形消失了,这确实发生了。)无论如何,我已经获得了一个更好的经验,制作了一个叠加,添加
我想这个问题可能太难了。也许在这个子类之外的某个地方出了问题。(但奇怪的是,通过删除这里的绘图逻辑,重影三角形消失了,这确实发生了。)无论如何,我已经获得了一个更好的经验,制作了一个叠加,添加到mapview中,然后重载绘图方法
private class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.ic_launcher);
//---translate the GeoPoint to screen pixels---
Point screenPts1 = new Point();
mapView.getProjection().toPixels(p1, screenPts1);
//---translate the GeoPoint to screen pixels---
Point screenPts2 = new Point();
mapView.getProjection().toPixels(p2, screenPts2);
//---add the first marker---
canvas.drawBitmap(bmp, screenPts1.x - bmp.getWidth()/2,
screenPts1.y - bmp.getHeight()/2, null);
(…剪断…)
private class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.ic_launcher);
//---translate the GeoPoint to screen pixels---
Point screenPts1 = new Point();
mapView.getProjection().toPixels(p1, screenPts1);
//---translate the GeoPoint to screen pixels---
Point screenPts2 = new Point();
mapView.getProjection().toPixels(p2, screenPts2);
//---add the first marker---
canvas.drawBitmap(bmp, screenPts1.x - bmp.getWidth()/2,
screenPts1.y - bmp.getHeight()/2, null);