使用毕加索在图像中添加标记

时间:2017-03-08 07:07:04

标签: android picasso

是否可以使用android中的任何图像库在图像上添加标记?

到目前为止,我已经使用毕加索将图像加载到ImageView中,我用Google搜索的所有解决方案都涉及在Google地图中添加标记!

Just Like the marker center in the image

1 个答案:

答案 0 :(得分:2)

Picasso提供了一个通用的Target界面,您可以使用它来实现自己的图像目标。具体来说,您需要覆盖onBitmapLoaded以填充标记。

下面给出了一个基本的实现。

public class PicassoMarker implements Target {
    Marker mMarker;

    PicassoMarker(Marker marker) {
        mMarker = marker;
    }

    @Override
    public int hashCode() {
        return mMarker.hashCode();
    }

    @Override
    public boolean equals(Object o) {
        if(o instanceof PicassoMarker) {
            Marker marker = ((PicassoMarker) o).mMarker;
            return mMarker.equals(marker);
        } else {
            return false;
        }
    }

    @Override
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from)         {
        mMarker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap));
    }

    @Override
    public void onBitmapFailed(Drawable errorDrawable) {
    }

    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {

    }}

您可以这样使用它:

marker = new PicassoMarker(myMarker);
Picasso.with(MainActivity.this).load(URL).into(marker);