Ric*_*ral 4 scaling android imageview
我有以下布局ImageView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/imageview_icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:scaleType="fitCenter" />
(...)
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
那些48dp等于36px,48像素和在72px ldpi,mdpi和hdpi分别.所有将在这里使用的图像ImageView基本上都是图标,我在网上找到了我想要的应用程序(免费许可证).但不幸的是,它没有大于48px的图像,并且使用不同的图像是不可能的.所以我需要一个新的解决方案......
现在我分别在ldpi和mdpi文件夹中有36px和48px的图像.但是我遇到了麻烦hdpi.我想要运行的设备hdpi是他们使用mdpi图像(可用的较大的图像)并按原样使用它,无需缩放.基本上,ImageViewfor hdpi是72px,所以我希望48px图像在72px内,在中心,没有缩放.为此,我只是尝试scaleType将ImageView上面的内容更改为just center,但无论如何图像都会缩放.
我在这里的最终问题是,解决上述问题的正确方法是什么?如何在各自的密度下使用ldpi和mdpi图像,但运行的设备hdpi拾取最大的可用图像(这是mdpi那些)并防止任何缩放,只是将图像拟合在ImageView?的中心?
编辑:
我自己回答了这个问题,但它可能是其他人来这里寻找的答案.但我确实提供了一些关于真实情况和潜在问题的见解.如果可以,请查看并提供解决方法/修复方法.我赌你 :)
Ric*_*ral 13
这个问题结果是一个非问题,我向任何创建它的人道歉,希望接受的答案将是他们正在寻找的不会.
为了说清楚,scaleType=centerInside正如预期的那样工作.也就是说,如果您的图像小于其ImageView自身,则该图像将不会缩放到其边界ImageView,它将保持在中心并且未缩放.
但是为了使上述工作按预期工作,必须将drawable放在nodpi文件夹中.我知道这并不总是可以接受的.因此,当必须将该drawable放入其中一个密度文件夹而不是nodpi文件夹时,该scaleType属性仅适用于特定情况.
什么时候会起作用:
Xdpi密度和存在的可抽拉Xdpi密度文件夹(这里X指,
l,m,h甚至xh).hdpi密度的应用程序设备/模拟器,但hdpi文件夹中没有可绘制的,
并且系统从nodpi文件夹中选择备用drawable
(它并不总是知道它将从哪个文件夹中选取).什么时候不起作用:
hdpi
密度的应用程序设备/模拟器,但hdpi文件夹中没有可绘制的,并且系统从任何其他密度文件夹(而不是nodpi文件夹)中选择可替换的drawable ,drawable将被缩放到
ImageView界限和scaleType属性将不会做任何事情.总之,我的问题没有"正确"的答案,这实际上取决于你想要实现的目标.答案我的问题,我只需要做两件事:a)设置ImageView scaleTypeto centerInside和b)将mdpi文件夹中的所有drawables复制到hdpi文件夹中(如上所述,scaleType=centerInside将使其工作).
当然,复制drawables并不是最佳选择,但我找不到任何其他解决方案,到目前为止,没有其他人可以......所以,在目前,我会将此标记为已接受.
那么最佳答案/解决方案是什么?
在我看来,如果设备/模拟器正在运行hdpi并且hdpi文件夹中没有匹配的drawable,它应该从mdpi文件夹中选择drawable 而不缩放它,允许scaleType属性做它的事情.或者,nodpi如果在相应的密度文件夹中找不到匹配的drawable,可能强制系统转到该文件夹,这也可能是一个解决方案.
因此,如果任何人都可以提供解决方案/修复此问题,那将是真正正确的答案.如果它发生了,我将改变接受的状态.
| 归档时间: |
|
| 查看次数: |
11981 次 |
| 最近记录: |