Mang theo tôi, tôi mới!
Tôi muốn sử dụng vectơ trong ứng dụng Android của mình và tôi muốn ứng dụng của tôi tương thích ngược. Tôi tìm thấy this support library trông khá tuyệt! *
Vì vậy, tôi đã nhầm lẫn về cách tôi sẽ 'cài đặt' nó. Nó cung cấp cho bạn một liên kết để tải xuống tệp .pom, .aar, javadoc.jar và tệp sources.jar. Tôi nên tải xuống cái nào và tôi nên đặt tệp (thư mục nào)?
(Tôi đang sử dụng Android Studio!)
* (Bất kỳ ai biết một thư viện hỗ trợ VectorDrawable khác nhau? Tôi muốn được quan tâm trong buổi điều trần trải nghiệm tất cả mọi người!)Khả năng tương thích ngược của VectorDrawable và cài đặt các thư viện hỗ trợ không chính thức
Trả lời
Dưới đây là một lựa chọn mà làm việc cho tôi Sử dụng thư viện này - https://github.com/wnafee/vector-compat (api 14+)
android {
// use version 22 or higher
buildToolsVersion "22.0.1"
...
}
dependencies {
compile 'com.wnafee:vector-compat:1.0.5'
...
}
Và tạo ra một lớp ImageView tùy chỉnh mà sử dụng vector compat lớp -
public class SvgImageView extends ImageView {
private Drawable icon;
public SvgImageView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs,
R.styleable.button_left, 0, 0);
try {
int resId = ta.getResourceId(R.styleable.button_left_b_icon, -1);
if (resId != -1) {
icon = ResourcesCompat.getDrawable(this.getContext(), resId);
}
} finally {
ta.recycle();
}
if (icon != null) {
setImage(icon);
}
}
public void setImage(Drawable icon) {
SvgImageView.this.setImageDrawable(icon);
}
}
dụ hình ảnh Vector -
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:width="@dimen/logo_dimen"
android:height="@dimen/logo_dimen"
android:viewportWidth="@integer/view_port_dimen_logo"
android:viewportHeight="@integer/view_port_dimen_logo"
app:vc_viewportWidth="@integer/view_port_dimen_logo"
app:vc_viewportHeight="@integer/view_port_dimen_logo">
<group
android:name="rotationGroup"
android:pivotX="0"
android:pivotY="0"
android:rotation="0">
<path
android:name="v"
android:fillColor="@color/white"
android:pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z"
app:vc_fillColor="@color/white"
app:vc_pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z" />
</group>
</vector>
Ví dụ -
<packagename.SvgImageView
app:b_icon="@drawable/google_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView3" />
Hey @attels! Cảm ơn đã phản ứng nhanh chóng! Để đảm bảo, tất cả những gì bạn làm là thêm android {// use version 22 hoặc cao hơn buildToolsVersion "22.0.1" ...} dependencies {compile 'com.wnafee: vector-compat: 1.0.5' ...} - Mã và thêm lớp tùy chỉnh, và đó là nó? –
Thêm phụ thuộc vào tệp gradle, thêm lớp, thêm hình ảnh vector trong thư mục drawable và sử dụng SVGImageView thay vì ImageView, trong packagename đặt gói của bạn nơi bạn đã thêm SVGImageView. logo_dimen = 20dp, view_port_dimen_logo = 25 –
Xin chào, tôi có thể sử dụng thư viện này trong dự án Eclipse của mình không. Tôi không thể sử dụng Android Studio tại thời điểm này. Tôi đang sử dụng Eclipse. – Solace
Giải pháp tốt nhất tôi thấy là BetterVectorDrawable lib cùng với SVG to VectorDrawable Converter.
BetterVectorDrawable là triển khai VectorDrawable cho Android 4.0+ với hành vi thu gọn lại có thể định cấu hình trên Android 5.0+. Có thể thêm lib vào một dự án chỉ với một dòng (xem readme).
SVG to VectorDrawable Converter là bộ chuyển đổi hàng loạt của hình ảnh SVG thành tệp Vector tài nguyên XML có thể chia sẻ của Android. Phiên bản trực tuyến là here.
Liên kết trỏ tới readmes, cung cấp đủ thông tin về cách sử dụng lib và trình chuyển đổi.
Google vừa công bố Android Studio 1.4 với khả năng tương thích ngược cho Vector Drawables. Nó sẽ tạo các tệp .png ở các kích thước thích hợp cho mật độ màn hình khác nhau cho các thiết bị trước Lollipop và sẽ sử dụng định dạng vectơ cho Lollipop trở lên. Xem liên kết này: http://android-developers.blogspot.com/2015/09/android-studio-14.html
Chỉ cần đảm bảo rằng phiên bản Gradle Build của bạn là 1.4.0 trở lên!
về mặt kỹ thuật đúng, nhưng tôi đang tìm kiếm vì tôi gặp phải lỗi xây dựng trong trình chuyển đổi được tích hợp sẵn. – mix3d
Cảm ơn những người đã chuyển thư này trước Google!
Tin vui là Google đã phát hành Android Support Library 23.2 Hỗ trợ Bản vẽ Vector và Bản vẽ Vector Hoạt hình!
Lưu ý:
- Vector hình ảnh tất cả các cách trở lại API 7 (Android 2.1 Eclair).
- vector hoạt hình là một chút hạn chế hơn, sẽ chỉ như xa trở lại như API 11
- 1. OpenGL Khả năng tương thích ngược
- 2. ISerializable và khả năng tương thích ngược
- 3. Hỗ trợ của jQuery cho khả năng tương thích ngược tốt như thế nào?
- 4. API iOS 6 và khả năng tương thích ngược
- 5. Khả năng tương thích ngược của Silverlight 5
- 6. Phiên bản WebSocket và khả năng tương thích ngược
- 7. Khả năng tương thích ngược và Dịch vụ Web
- 8. Khả năng tương thích Meteor
- 9. Khả năng tương thích GCC 4.0, 4.2 và LLVM ABI
- 10. Hoàn toàn hiểu các phiên bản .NET và khả năng tương thích ngược
- 11. PrimeFaces và khả năng tương thích của trình duyệt
- 12. Phát hiện khả năng tương thích TLS của trình duyệt
- 13. Khả năng tương thích nhị phân Haskell
- 14. Làm cách nào để tránh các phương pháp không được chấp nhận và duy trì khả năng tương thích ngược?
- 15. OpenGL Core và Khả năng tương thích
- 16. Cách xây dựng thư viện tĩnh với khả năng tương thích tối đa trên iOS?
- 17. Cách được khuyến nghị để hỗ trợ khả năng tương thích ngược/chuyển tiếp trong ứng dụng iPhone?
- 18. match_parent khả năng tương thích
- 19. Android Studio lỗi sử dụng VectorDrawable (mới Hỗ trợ 23.2.0 thư viện)
- 20. Khả năng tương thích thư viện giữa C++ 11 và C++ 03
- 21. Khả năng tương thích với IE và Socket.io
- 22. Khả năng tương thích Subversion (SVN) và thư viện tĩnh (.a files)?
- 23. Khả năng tương thích nhanh giữa các phiên bản cho thư viện
- 24. _GLIBCXX_USE_CXX11_ABI, GCC 4.8 và khả năng tương thích ABI
- 25. Khả năng tương thích của iPhone/.NET WCF
- 26. Phiên bản nào của thư viện hỗ trợ được cài đặt trong tôi Android Studio
- 27. getChildFragmentManager() và hỗ trợ thư viện
- 28. Khả năng tương thích bitcode của XCode 8
- 29. Khả năng tương thích của ARC và Bảng phân cảnh
- 30. Khả năng tương thích PHP7 với Symfony3?
thông tin thực tế về cách sử dụng appcompat vectơ - http://stackoverflow.com/q/40678947/7045114 –