我为我的应用程序制作了一个图标..该应用程序基本上是一个朋友查找器。我创建的叠加层看起来很像谷歌纵横的图标。我有一个由于用户而改变的图像,而且我有一个寄宿生。我已经能够分层绘制和叠加精细,但问题是,图像延伸到边框的大小。这是一个问题,因为如果你从未见过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);
答案 0 :(得分:20)
在我发布这个之后有趣的那么短,我找到了答案。我正在寻找所有错误的地方来调整图像大小。我尝试了位图,可绘制,图层内部的图层。但是,我从未尝试过的是图层抽象本身。解决方案如下:
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 inset方法如下:
layerDrawable.setLayerInset(*index of layer*, *left inset*, *top*, *right*, *bottom*);
谢谢你们!