我正在尝试使用此世界地图svg,但是当我调整矢量大小以查看新加坡时,它并没有缩放。地图变得模糊。更具体地说,我将imageView的宽度和高度设置为36000dp。
这是矢量抽签的宽度和高度:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="2000dp"
android:height="1001dp"
android:viewportWidth="2000"
android:viewportHeight="1001">
在我的布局文件中,我已经使用app:srcCompat而不是src:。
<android.support.constraint.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="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#3A6F5C">
<ImageView
android:id="@+id/Map_svg"
android:layout_width="36000dp"
android:layout_height="36000dp"
app:srcCompat="@drawable/ic_world_map"
/>
</android.support.constraint.ConstraintLayout>
这是我的gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
vectorDrawables.useSupportLibrary = true
applicationId "com.example.alan_lin.flora_shipanimation"
minSdkVersion 22
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
在放大时如何防止其变得模糊?谢谢
答案 0 :(得分:0)
我尝试了您共享的SVG,但是它太复杂了,无法由Android处理,当应用程序尝试在运行时加载它时说STRING_TOO_LARGE
int堆栈跟踪时,该应用程序崩溃了。
对于您的解决方案,我建议对此类非常复杂的SVG使用PNG。
另外两个注释:
android:scaleType
属性设置为ImageView
。不要忘记在您的Application
扩展名中添加以下代码:
public class App extends Application {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
...