SVG 在 Android 中保留纵横比

2024-04-01

我在 Android 手机上遇到 SVG 缩放问题。

我网站的几个部分是基于通过嵌入的 SVG 的宽度和高度尺寸<img>标签。 所有浏览器,除了Android 4.1.2 原生浏览器(非 Chrome),正确、完美地缩放 SVG,不会扭曲纵横比。

Here is screenshot of how it appears on Firefox(and all the browsers) enter image description here

Here is screenshot of how it appears on the Android 4.1.2 Native Browser. enter image description here

测试网址 http://prashantsani.com/demos/svgIssue/ http://prashantsani.com/demos/svgIssue/

我尝试了以下所有解决方案,但没有一个有效。

  1. 设置宽度、高度和视图框不起作用。此外,preserveAspectRatio 也不起作用。<svg width="443.5" height="100" viewBox="0 0 443.5 100" preserveAspectRatio="xMidYMid meet">

  2. 包裹在另一个 SVG 中并没有达到目的(另外,我不想将图像居中,而是需要一种按比例缩放图像的方法)。以编程方式居中 svg 路径 https://stackoverflow.com/questions/16891277/programmatically-centering-svg-path/16921836#16921836

  3. 我试过这个:SVG 调整图像大小超出纵横比 https://stackoverflow.com/questions/18522361/svg-resize-image-out-of-aspect-ratio但它也不起作用。宽度和高度已设置为整数,而不是 % 或 px。

回答前请先阅读以下内容:

  1. 由于布局在某些地方需要宽度和高度,因此我必须在某些地方保留两者。
  2. 此问题仅发生在 Android 4.1.2{“浏览器”应用程序}上的本机浏览器应用程序中 。正如在 Chrome 和 Android 4.1.2 上的所有其他浏览器中所预期的那样,它运行得非常出色。
  3. 如果您找到解决方案,小提琴或密码笔将会很有帮助。
  4. 不打算使用 SVG 以外的任何图像格式。
  5. 宽度和高度并通过 css 以 % 的形式提及......并且 SVG 必须相应地缩放。

Thanks.


As per 本文 http://codeandlife.com/2014/12/28/fixing-android-browser-svg-scaling-with-max-height/, max-height: 100%; and/or max-width: 100%样式属性内似乎有潜在的修复。

然而,就我自己而言,我只指定了width="32" with a viewBox="0 0 32 32",一旦我添加height="32"我不再有任何问题。我太习惯了大多数可以弥补这些问题的浏览器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVG 在 Android 中保留纵横比 的相关文章

  • 从本机代码访问 AsyncStorage

    我需要使用 JS 代码中的 AsyncStorage 将数据保存在本地存储中 我想知道是否有一种方法可以从本机代码 Objective C 或 Java 访问 AsyncStorage 存储的数据 Thanks 如果你导入RCTAsyncL
  • 从 Bitmap 类创建 .bmp 图像文件

    我创建了一个使用套接字的应用程序 客户端在其中接收图像并将图像数据存储在 Bitmap 类中 谁能告诉我如何创建一个名为我的图像 png or 我的图像 bmp来自此 Bitmap 对象 String base64Code dataInpu
  • 获取TextView的高度

    我有一些文字将被放入TextView 我这样做是使用setText 现在我需要找到文本在文本中占据的行数或高度TextView 我尝试使用getHeight 但它总是返回 0 无论如何 有没有办法获得文本中存在的文本的高度TextView
  • Android SIP 客户端 SipManager.open() 未打开

    我一直在使用 Android SDK 的本机 SIP 库编写 SIP 客户端 由于某种原因 我无法让我的帐户在服务器上注册 以下是测试场地 Linux Mint 17 XFCE 运行 Kamailio 服务器 启用 MySQL 和 TLS
  • 类型“Null”不是类型“Widget”的子类型

    我正在编写一个关于 flutter 的代码 以便在 android ios 和 web 上使用 Google 登录 但我第一时间就遇到了这个错误 我在 Android 模拟器上运行它来检查它是否正常工作 我现在还没有将其设置为网络 在模拟器
  • Android Studio 无法解析存储库

    在我的项目中 我尝试使用设计支持库 我的 Gradle 文件中有 dependencies compile com android support design 当我尝试构建这个时 我收到错误 通常我会点击Install Repositor
  • 如何让 LibGDX gradled eclipse 项目在 AIDE(Android IDE 应用程序)上工作

    我正在尝试让 libgdx gradle 项目在 AIDE 上运行 AIDE 是 Android 上的一款应用程序 其作用类似于 IDE 它似乎不起作用 因为 buildconfig java 没有生成包名称 有人有任何解决方法吗 好的 我
  • 获取 HTML 代码的结构

    我正在使用 BeautifulSoup4 我很好奇是否有一个函数可以返回 HTML 代码的结构 有序标签 这是一个例子 h1 Simple example h1 p This is a simple example of html page
  • 如何检查应用程序是否违反 Google 的假冒政策

    我的应用程序已从 Google Play 商店中删除 原因如下 经审核 我的应用 有 由于政策罢工而被暂停并从 Google Play 中删除 因为 它违反了假冒政策 有没有其他方法可以在发布之前检查应用程序是否遵守所有 Google 政策
  • 为什么某些手机会出现“此应用程序的配置不正确”错误?

    我已经在 android 6 中构建了我的应用程序 没有任何错误 但是当我在 android 4 4 2 中构建我的应用程序时 我收到此错误 This app has been built with an incorrect configu
  • 在 Chrome 上使用 html5 显示垂直视频

    我正在构建一个简单的page http jsfiddle net JVZGZ 使用 html5 视频标签显示从我的 iPhone 上传的视频 如果您使用 chrome 观看它 您可能会看到该视频是水平呈现的 尽管它不是水平呈现的 尝试下载它
  • ChromeCast 无法播放 .m3u8 格式的 HLS

    应用程序中集成了 chromecast 一切正常 除了不播放 m3u8 格式的实时流媒体 url 而是播放 m3u8 格式的电影 url 我这样做是为了将 url 设置为 chromecast return new MediaInfo Bu
  • 如何从 Android L 预览设计制作 Android 列表视图设计

    我制作Android L预览图像样式列表项 这是我针对这些类似设计的代码 可绘制 list item bg xml
  • 为什么 html 中的 AngularJS 错误没有显示在控制台中?

    Here s a fiddle http jsfiddle net 6y7odxmj 3 用于说明 当 ng click 指令 例如 调用未在控制器的 scope 或其父级 上定义的函数时 它会默默地失败 当我尝试调试网页时 这种行为令人抓
  • Paint.setTextSize(float) 使用哪种测量单位?

    我想使用在视图上绘制具有特定高度 以像素为单位 的文本Canvas 你可以简单地使用Paint setTextSize float 与像素数或者这是使用dp or sp 它使用像素 但您可以使用以下代码将其转换为 dp double get
  • 包含括号的变量会导致问题[重复]

    这个问题在这里已经有答案了 简单的事情 当单击按钮并将其写入文本字段时 我读取选择框的值 选择框
  • 如何处理在某些 Marshmallow 之前的设备上未自动授予 SYSTEM_ALERT_WINDOW 权限

    我收到一些小米设备 例如 Mi 2 运行 API 级别 21 不显示叠加层的报告 我的应用程序以 API 23 为目标 有several http forum xda developers com xiaomi mi 3 help link
  • 在 Android Studio 中打开上次关闭的选项卡

    我是 Android Studio 的新手 想知道是否有任何快捷方式 选项可以重新打开上次关闭的选项卡 没有分配快捷方式 但您可以轻松分配新的快捷方式 Go to IDE settings Keymap Main menu Window E
  • react-native-firebase 无法处理通知 click_action 导航到通知屏幕

    我正在使用这个react native firebase和react navigation进行导航 我可以成功地从服务器或控制台推送通知 无论它是在前台还是后台 但我发誓文档不太清楚如何打开通知并导航到通知它所属的屏幕 这些是我的 onMe
  • 如何将上下文从一个活动传递到另一个活动?

    我有一个主要活动 它调用另一个活动来显示一些数据 我有一个私有数据库帮助程序对象 我在整个主要活动代码中使用它 有没有办法以优雅的方式将我的主要活动的上下文传递给我的子活动 即 来自子类 类似getCallingActivityContex

随机推荐