haj*_*jas 5 icons svg android imagemagick android-layout
我正在构建一个 Android 应用程序,它具有:
启动画面,显示应用程序的徽标
什么是有效的:
如果我在 SplashScreenActivity 的布局中设置 ImageView ,屏幕显示得非常好,并且将根据需要转到 FirstActivity 。
什么不是:
然而,这不是正确的方法,因为当应用程序启动时布局正在膨胀,它会产生延迟。我使用了推荐的方法如下:
启动文件
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/black" />
<item
android:gravity="center">
<bitmap
android:src="@drawable/logo"
android:gravity="center"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
样式.xml
<style name="Splash" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
</style>
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml
<application
android:theme="@style/Splash">
Run Code Online (Sandbox Code Playgroud)
当我尝试从 mipmap 文件夹设置位图 src 时,它生成了一个小图像。
由于我还有徽标的 SVG 文件,因此我尝试使用 Vector Asset 生成可绘制对象,但位图 src 需要图像,因此应用程序崩溃了。
然后我尝试使用 ImageMagick、InkScape 和其他工具及其推荐的高质量图像选项从 SVG 生成 PNG。
但它仍然不如使用带有 Vector Drawable 作为源的 ImageView 那么清晰,最后我现在想不出任何其他方法。
那么,如何才能获得与所有其他应用程序相同的图像质量呢?还有什么方法可以让位图使用 SVG 本身吗?
hrk*_*ngh -1
你应该使用矢量而不是 png 或 jpg
在android中使用向量
app:srcCompat="@drawable/logo"
Run Code Online (Sandbox Code Playgroud)
并且您需要添加vectorDrawables.useSupportLibrary = true
到您的build.gradle
文件中
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息和用法请参阅: https://www.androidhive.info/2017/02/android-working-svg-vector-drawables/
归档时间: |
|
查看次数: |
3259 次 |
最近记录: |