Bạn có thể sử dụng vector drawables .
Nếu API tối thiểu của bạn thấp hơn 21, Android Studio sẽ tự động tạo ảnh bitmap PNG cho các phiên bản thấp hơn đó vào thời gian xây dựng (xem Vector Asset Studio ). Nếu bạn sử dụng thư viện hỗ trợ, Android thậm chí còn quản lý "vectơ thực" xuống API 7 (nhiều hơn về điều đó trong bản cập nhật của bài đăng này ở phía dưới).
Một hình tam giác hướng lên màu đỏ sẽ là:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="100dp"
android:width="100dp"
android:viewportHeight="100"
android:viewportWidth="100" >
<group
android:name="triableGroup">
<path
android:name="triangle"
android:fillColor="#FF0000"
android:pathData="m 50,0 l 50,100 -100,0 z" />
</group>
</vector>
Thêm nó vào bố cục của bạn và nhớ đặt clipChildren = "false" nếu bạn xoay hình tam giác.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<ImageView
android:layout_width="130dp"
android:layout_height="100dp"
android:rotation="0"
android:layout_centerInParent="true"
android:background="@drawable/triangle"/>
</RelativeLayout>
Thay đổi kích thước (chiều rộng / chiều cao) của hình tam giác bằng cách đặt thuộc tính Lượt xem layout_ thong / layout_height. Bằng cách này, bạn cũng có thể có được một bộ ba điện tử nếu bạn thực hiện đúng phép toán.
CẬP NHẬT 25.11.2017
Nếu bạn sử dụng thư viện hỗ trợ, bạn có thể sử dụng các vectơ thực (thay vì tạo bitmap) xa như API 7 . Chỉ cần thêm:
vectorDrawables.useSupportLibrary = true
làm defaultConfig
trong build.gradle của mô-đun của bạn.
Sau đó, đặt (vector xml) drawable như thế này:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:srcCompat="@drawable/triangle" />
Tất cả mọi thứ được ghi lại rất độc đáo trên trang Vector Asset Studio .
Kể từ khi tính năng này, tôi đã làm việc hoàn toàn không có bitmap về các biểu tượng. Điều này cũng làm giảm kích thước APK khá nhiều.