繁体   English   中英

设置分层可绘制对象的大小?

[英]Set size of Layered Drawable?

我正在为我的应用制作图标。该应用基本上是一个朋友查找器。 我正在创建一个看起来与Google Latitude中的图标非常相似的叠加层。 我的图像会因用户而有所变化,并且我有寄宿生。 我已经能够进行分层的可绘制和精细叠加,但是问题是图像会扩展到边框的大小。 这是一个问题,因为如果您从未见过Google Lat图标,则该图标的底部有一个点,中间有一个空白点。

我需要做的是,以某种方式将变化图像的大小限制在边框的正方形部分的范围内。 任何帮助将非常感激。 这是我的片段:

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inSampleSize = 25;  
    Bitmap bit = BitmapFactory.decodeFile(photo, options);
    draw = new BitmapDrawable(bit);

    Resources r = getResources();
    Drawable[] layers = new Drawable[2];
    layers[0] = draw;
    layers[1] = r.getDrawable(R.drawable.border);
    LayerDrawable layerDrawable = new LayerDrawable(layers);
    draw = layerDrawable;

    }else{
    draw = this.getResources().getDrawable(R.drawable.androidmarker);
    }

    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(draw, this);

    GeoPoint point = new GeoPoint(lat,lon);
    OverlayItem overlayitem = new OverlayItem(point, username, avail + " : " + status + " : Position updated at : " + update_at);
    items.add(overlayitem);
    itemizedoverlay.addOverlay(overlayitem);
    mapOverlays.add(itemizedoverlay);

我发布了这篇文章后,那个矮子很有趣,我找到了答案。 我一直在寻找所有错误的位置来调整图像大小。 我尝试了位图,drawable,layerdrawable内部的图层。 但是,我从未尝试过的是layerdrawable本身。 解决方案如下:

  Resources r = getResources();
    Drawable[] layers = new Drawable[2];
    layers[0] = draw;
    layers[1] = r.getDrawable(R.drawable.border);
    LayerDrawable layerDrawable = new LayerDrawable(layers);
    layerDrawable.setLayerInset(0, 0, 0, 0, 12);
    draw = layerDrawable;

layerDrawable插入方法如下:

layerDrawable.setLayerInset(*index of layer*, *left inset*, *top*, *right*, *bottom*);

多谢你们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM