我有一个像这样定义的图像按钮
<ImageButton
android:id="@+id/btnEditWorkDuration"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_alignParentRight="true"
android:src="@drawable/edit"
android:scaleType="centerInside"/>
以下是“设计”标签中的外观:
以及它在文本编辑器中的外观(注意第31行旁边的边框中的drawable不会被翻转)
为什么会这样?
我已将违规的ImageButton移到另一个布局文件中,整个布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageButton
android:layout_width="12dp" android:scaleType="centerInside"
android:layout_height="12dp" android:src="@drawable/edit" />
</RelativeLayout>
我已将资源文件夹中的原始图片(edit.png)上传到此网址:http://s000.tinyupload.com/?file_id=27107676428757093272
我的Android Studio版本是2.3.3
答案 0 :(得分:0)
嗯,我肯定不知道为什么会这样,但我可以确认它发生了。我目前也在使用Android Studio 2.3.3,所以这可能只是这个AS版本的错误。
比例类型android:scaleType="centerInside"
应该只是
均匀缩放图像(保持图像的纵横比) 图像的尺寸(宽度和高度)将等于或 小于视图的相应尺寸(减去填充)。
(引自documentation)
但除此之外,它将drawable旋转180度。顺便说一句,它也发生在材料图标库中的其他png文件中,因此你的edit.png没有任何问题。
我使用android:scaleType="center"
摆脱了轮换。但不幸的是,这会导致图标被剪裁,因此它并不能解决您的问题。
可能的解决方法都涉及使用其他图像资源,因此不需要进行缩放,android:scaleType="center"
就足够了:
或者,当然,您可以升级到最新的Android Studio版本,因为此时此错误已得到修复。
答案 1 :(得分:0)
我正在使用AS 3.0.1,我可以确认无法重现错误。它使用相同的代码工作正常。也许是一个AS bug