簡體   English   中英

按鈕中的 Android 9 drawable 未顯示

[英]Android 9 drawable in Button not showing

我在按鈕中放置了一個 drawable,它適用於 Android 6 但不適用於 Android 9 設備。

相同的代碼,沒有例外,只是沒有出現。 首先,我縮放我的 drawable 以適應我的按鈕並更改 drawable 的顏色,這是我的代碼:

整數 scaleWidth = myButton.getWidth(); 整數 scaleHeight =myButton.getHeight();

Drawable drawable = getResources().getDrawable(R.drawable.myDrawable);

可繪制的wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(wrappedDrawable, iColor);

WrappedDrawable.setBounds(0, 0, (int) (wrappedDrawable.getIntrinsicWidth() * 0.5), (int) (wrappedDrawable.getIntrinsicHeight() * 0.5)); ScaleDrawable sd = new ScaleDrawable(wrappedDrawable, 0, scaleWidth, scaleHeight);

myButton.setCompoundDrawables(null, null, sd.getDrawable(), null);

編輯:

這有效:

Drawable drawable = getResources().getDrawable(R.drawable.xxx);
                    Drawable wrappedDrawable = DrawableCompat.wrap(drawable);
                    DrawableCompat.setTint(wrappedDrawable, iColor);

                    wrappedDrawable.setBounds(0, 0, (int) (wrappedDrawable.getIntrinsicWidth() * 0.5), (int) (wrappedDrawable.getIntrinsicHeight() * 0.5));

你真的需要以編程方式添加按鈕 drawable 嗎? 為什么不試試我的實現,即在 xml 文件中設置可繪制對象? 這段代碼已經在 Android 7.0 中測試過,直到 Android 10.0。 這是我的代碼:

            <Button
                android:id="@+id/btn_tax_receipt"
                style="@style/page_button"
                android:drawableTop="@drawable/ic_receipt_light"
                android:text="@string/title_activity_tax_receipt"
                android:textStyle="bold"
                tools:layout_editor_absoluteX="27dp"
                tools:layout_editor_absoluteY="225dp" />

您可以通過更改android:drawableTint的顏色值來更改 drawable 的顏色

或者使用這種更簡單的方法:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM