nin*_*nnk 8 java android image drawable
我正在为我的应用程序制作一个图标..该应用程序基本上是一个朋友查找器.我创建的叠加层看起来很像谷歌纵横的图标.我有一个图像,由于用户而改变,我有寄宿生.我已经能够分层绘制和叠加精细,但问题是,图像延伸到边框的大小.这是一个问题,因为如果你从未见过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);
Run Code Online (Sandbox Code Playgroud)
nin*_*nnk 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;
Run Code Online (Sandbox Code Playgroud)
layerDrawable inset方法如下:
layerDrawable.setLayerInset(*index of layer*, *left inset*, *top*, *right*, *bottom*);
Run Code Online (Sandbox Code Playgroud)
多谢你们!