Raf*_*l T 5 java android bitmap layer drawable
我有一个LayerDrawable,它应该显示5个位图.1个背景和4个图标(对于每个LayerDrawable可以是不同的),如Grid.不幸的是,这些图标的宽度与高度不同.我的问题是调整它们的大小,同时保持它们的比例并将它们置于其位置(1-4个图标,5个背景):
==================
| | | |
| 1 | | 2 |
|------.5 .------|
|------. .------|
| 3 | | 4 |
| | | |
==================
Run Code Online (Sandbox Code Playgroud)
如果我调整这些位图的大小,给它们Gravity.CENTER它们将不再适合背景矩形的边界.如果我离开,Gravity.CENTER他们似乎会在我打电话后立即重新调整layerDrawable.setLayerInset(numlayer, left, top, right, bottom).做正确的方法是什么?如何在正确放置时保持比例?到目前为止我还无法理解的是为什么来自BitmapDrawable的getIntrinsicWidth/Height返回的东西(小于)来自原始Bitmap的getWidth/Height.
我尝试了什么:
1.从XML中获取它们,在内部放置一个"虚拟绘图"并用上述结果替换它.2.在我的程序中创建LayerDrawable,传递所有drawables.似乎setLayerInset没有任何影响,或者我只看到背景(我的可绘制数组中的元素0)
3.扩展LayerDrawable并尝试自己跟踪任何事情而没有合理的结果
, dyBitmapDrawable默认值用给定的 填充其边界Bitmap。如果您开始使用Gravity,Bitmap将根据给定的位置Gravity。我想在你的情况下,最好的选择是创建你自己的Drawable.
关于 getIntrinsic[Height|Width] 方法,它们返回底层的实际大小,Bitmap如果系统在加载时调整其大小(例如在 mdpi 屏幕上加载的 hdpi 图像),则该大小可能会有所不同。
| 归档时间: |
|
| 查看次数: |
3884 次 |
| 最近记录: |