Có ba cách tôi xử lý opacity:
a) Đơn giản một, tôi tải chúng (trên materialdesignicons.com nếu tôi cần lựa chọn màu xám) và sử dụng chúng, như tôi không cần phải thay đổi bất cứ điều gì trong dù sao. Nếu tôi không tìm thấy cái tôi cần, tôi tải xuống màu đen (trắng) và biến nó thành phiên bản opacity 54% của nó (đó là công việc 30 giây trên gimp/photoshop).
b) Nếu tôi chỉ cần trạng thái "bình thường" và "được nhấn", tôi tải xuống phiên bản màu đen (trắng), tạo hai phiên bản, ở mức 54% cho tự nhiên và 87% cho nhấn, sau đó tôi tạo nộp để kết hợp chúng (bạn có thể xử lý tập trung quá):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@mipmap/settings_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@mipmap/settings" /> <!-- focused -->
<item android:drawable="@mipmap/settings" /> <!-- default -->
</selector>
c) Nếu tôi cần phải thay đổi opacity của biểu tượng thường trong mã của tôi, tôi làm điều đó progammatically:
ImageButton mButton = (ImageButton) findViewById(R.id.button);
final Drawable buttonIcon = context.getResources().getDrawable(R.mipmap.your_icon);
buttonIcon.setAlpha(138); //this is the value of opacity 1~255
mButton.setBackground(buttonIcon);
Lưu ý rằng bạn có thể kết hợp các phương thức b) và c), do đó bạn không cần phải kiểm soát sự thay đổi của opacity khi lập trình, nhưng st bị bệnh có thể thay đổi giá trị tổng thể của nó khi bạn cần.
Thông thường tôi tự làm, vì vậy tôi có thể xử lý độ trong suốt 87% cho các biểu tượng được nhấn và 26% cho các biểu tượng bị tắt. Nếu tôi không cần thay đổi độ trong suốt, tôi sử dụng trang web này: http://materialdesignicons.com/ nơi có tùy chọn 'xám'. – Ruocco
Cảm ơn tôi thỉnh thoảng cũng sử dụng nó. Nhưng rất nhiều biểu tượng trên trang web chính thức và tôi tự hỏi tại sao họ không có 54% biểu tượng màu đen (xám) khi được viết theo nguyên tắc thiết kế chính thức. Bạn làm cách nào để minh bạch? Tôi không phải là một nhà thiết kế nên xin lỗi cho câu hỏi ngu ngốc :-) – chrisonline