![](/img/trans.png)
[英]Join tables in SQLite.Net with LINQ on xamarin.android is not supported
[英]Xamarin.Android: vector asset not supported by Android 5.x
我在一个Xamarin.Android项目上工作,我在其中创建了一个包含矢量资产作为背景的布局。
这工作正常,但在 Android 5.x 上,在实例化布局时出现异常“无法激活 JNI 句柄”。
我通过 Android Studio 从 a.svg 创建了矢量资产。
是否有另一种创建资产的方法,使其与 Android 5.x 兼容?
布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="@dimen/card_padding_horizontal"
android:id="@+id/CardLayout">
<ImageView
android:id="@+id/CardBackgroundImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/card_background"/>
<!-- other items -->
</androidx.constraintlayout.widget.ConstraintLayout>
矢量资产如下所示:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="349dp"
android:height="211dp"
android:viewportWidth="349"
android:viewportHeight="211">
<path
android:pathData="M19,0L330,0A16,16 0,0 1,346 16L346,190.39A16,16 0,0 1,330 206.39L19,206.39A16,16 0,0 1,3 190.39L3,16A16,16 0,0 1,19 0z">
<aapt:attr name="android:fillColor">
<gradient
android:startY="0"
android:startX="3"
android:endY="216.335"
android:endX="339.608"
android:type="linear">
<item android:offset="0" android:color="#FF35373A"/>
<item android:offset="0.337274" android:color="#FF5F6367"/>
<item android:offset="0.591875" android:color="#FF5F6367"/>
<item android:offset="0.929681" android:color="#FF35373A"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M246.565,84.052C233.962,84.052 225.75,92.525 225.75,103.808C225.75,116.802 234.938,124.46 247.988,124.46C251.931,124.46 255.834,123.93 259.087,122.586L260.022,113.584C257.135,114.928 254.045,115.906 250.712,115.906C245.467,115.906 239.369,113.462 238.271,107.067H267.624C267.908,93.095 260.794,84.052 246.565,84.052ZM237.946,99.49C238.922,95.254 242.012,92.077 246.931,92.077C251.525,92.077 254.777,94.806 255.387,99.49H237.946Z"
android:strokeAlpha="0.1"
android:fillColor="#F7F8F9"
android:fillAlpha="0.1"/>
</vector>
问题与矢量资产的<gradient>
属性有关。
为了修复它,我终于使用app:srcCompat
而不是android:src
来表示ImageView
。
<ImageView
android:id="@+id/CardBackgroundImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
app:srcCompat="@drawable/card_background"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.