android - 在按钮内缩放可绘制对象?

标签 android xml layout

目前我的 drawable 只是缩放到它的正常大小,我希望它适合我的按钮。这是它现在的样子的图片:

enter image description here

这是按钮的 xml:

<LinearLayout android:layout_width="wrap_content"
    android:id="@+id/linearLayout2" android:layout_height="40dp"
    android:layout_weight="0.4" android:gravity="right|center_vertical"
    android:paddingRight="5dp">
    <Button android:id="@+id/button1" android:background="@drawable/refresh"
        android:layout_height="25dp" android:layout_width="150dp"
        android:text="@string/buttonSearchAgain" android:drawableRight="@drawable/refresh_48"></Button>
</LinearLayout>

所以我希望它看起来像这样:

enter image description here

有什么方法可以缩小我的可绘制对象?

最佳答案

您可以通过编程方式解决此问题:查看 this answer 中的函数 scaleButtonDrawables .使用该功能,您可以在 Activity 的 onCreate() 中编写:

final Button button = (Button) findViewById(R.id.button1);
ViewTreeObserver vto = button.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            public boolean onPreDraw() {
                button.getViewTreeObserver().removeOnPreDrawListener(this);
                //scale to 90% of button height
                DroidUtils.scaleButtonDrawables(button, 0.9);
                return true;
            }
        });

(您不能直接调用它,因为按钮高度在 onCreate() 中不可用。)

关于android - 在按钮内缩放可绘制对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559083/

相关文章:

xml - XML 中的外部引用 DTD

xml - ]]> 序列在 XML 标记的内容中真的不合法吗?

java - 我可以在 xpath 上应用 where 条件吗?

html - 在文本区域内显示标签

java - 为每个RecyclerView项目创建DetailsActivity

android - 在启用省电模式的 Android Nougat 或 Android Oreo 上管理互联网连接

android - 在 Android 中设置 FLAG_LAYOUT_IN_SCREEN 后禁用全屏模式

android - 为什么ViewPager向左滚动时颜色过渡动画错误?

css - 改变浏览器与 css 和 dom 的交互

ios - 如何将自定义单元格与右细节和基本单元格对齐?