gpt4 book ai didi

java - 设置 Layered Drawable 的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:50 25 4
gpt4 key购买 nike

我正在为我的应用程序制作一个图标。该应用程序基本上是一个 friend 查找器。我正在创建一个看起来很像 Google Latitude 图标的叠加层。我有一个图像因用户而改变,我有寄宿生。我已经能够很好地进行分层绘制和叠加,但问题是,图像会拉伸(stretch)到边框的大小。这是一个问题,因为如果您从未见过 Google Lat 图标,它的底部有一个点,点之间有空隙。

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

    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的inset方法如下:

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

谢谢大家!

关于java - 设置 Layered Drawable 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com