2015-06-08 26 views
5

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

+0

thông tin thực tế về cách sử dụng appcompat vectơ - http://stackoverflow.com/q/40678947/7045114 –

Trả lời

7

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" /> 
+0

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ó? –

+0

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 –

+0

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

2

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.

4

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!

+0

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

4

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

Các vấn đề liên quan