【问题标题】:How to Create Dynamically numbered Pin Pointers on MapView?如何在 MapView 上创建动态编号的引脚指针?
【发布时间】:2011-06-28 04:08:05
【问题描述】:

我想在我的MapView 上显示一些位置。这些位置将显示编号为 1、2、3.. 的图钉(类似于 Google 地图结果,但它是 A、B、C..)。我认为拥有所有数字的别针是不可行的。

有什么方法可以让我用TextView 创建一个带有pin 背景的布局,然后我会动态地将数字放入TextView 并且该布局不能用作drawable pin?

或任何其他方法来实现这一点?请提供一些建议。

(我可以在MapView上显示不同的可绘制图钉。我只想动态创建可绘制对象)

【问题讨论】:

    标签: android google-maps android-mapview


    【解决方案1】:

    解决了这个问题。

    用 pin 背景膨胀 TextView 并将位置动态设置到 TextView 中。

    public Drawable createFromView(int positionNumber)
    {
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        View view = inflater.inflate(R.drawable.pin_icon, null, false);
        TextView tv = (TextView) view.findViewById(R.id.pin_background);
        tv.setText("     "+ (positionNumber+1) );   // +1 since position is starting from 0
        tv.setDrawingCacheEnabled(true);
        tv.layout(0, 0, 50, 50);
        tv.buildDrawingCache();
        Bitmap b = Bitmap.createBitmap(tv.getDrawingCache());
        tv.setDrawingCacheEnabled(false);
        Drawable d = new BitmapDrawable(b);
        return d;
    }
    

    【讨论】:

    • 这真的很棒,正是我一直在寻找的。您是否还有用于布局 xml 文件的代码 sn-p?
    • @kfox for R.drawable.pin_icon。它只不过是一个包含一个 TextView 的线性布局。线性布局背景是您的别针。只需将 TextView 居中对齐即可。如果您还需要它,请告诉我。我会提供给您。
    • 如果 R.drawable.pin_icon 是带有文本视图的线性布局。这是否意味着 R.id.pin_background 是包含 pin 图像的线性布局?
    • @AndrewS 抱歉上面的混淆- R.drawable.pin_icon 是一个具有线性布局的 xml 文件。 R.id.pin_background 是一些 LinerLayout 中的 TextView,其背景是您的实际 pin 图像。
    • 知道了。太好了,这意味着我可以动态设置背景并使用不同的颜色引脚。我如何做到这一点是通过开关盒将 TextView 的背景设置为几个可绘制资源之一。还要确保将 tv.layout 的宽度和高度设置为可绘制对象的大小。效果很好。
    猜你喜欢
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多