美文网首页Android开发经验谈Android开发AllAboutAndroid
Flutter-Android开发者文档 -项目结构及资源

Flutter-Android开发者文档 -项目结构及资源

作者: AllAboutCoding | 来源:发表于2018-06-27 16:14 被阅读37次

    喜欢我的小伙伴,一定要关注我的微信公众号啊!!!谢谢啦
    AllAboutCoding


    AllAboutCoding

    此文章为翻译Flutter官网的Flutter for Android Developers - Project structure & resources有兴趣的小伙伴可以移步官网查看。

    在哪存放分辨率相关的图片文件?

    在Android中把resources和assets作为不同的类目,Flutter App只有assets。所有的资源文件都放在Android的res/drawable-*目录下,对于Flutter来说都在assets文件夹下。
    Flutter像iOS一样基于简单的密度格式( a simple density-based format)。资源可能是1.0x,2.0x,3.0x或是其他倍数。Flutter没有dp但是有逻辑像素,基本等同于与设备无关的像素。所谓的设备像素比是物理像素与逻辑像素的比。
    与Android等价的密度表是:
    Android分辨率Flutter像素比:
    ldpi 0.75x
    mdpi 1.0x
    hdpi 1.5x
    xhdpi 2.0x
    xxhdpi 3.0x
    xxxhdpi 4.0x
    Flutter的资源文件夹可以放在任何地方--Flutter中没有预定义文件夹结构。在pubspec.yaml文件中声明资源(asserts)文件夹的位置,然后Flutter打包时就会加进去。
    注意Flutter 1.0 Beta2之前,在Flutter中asserts定义在Native端无法访问的地方,反之亦然,Native的asserts和resources对Flutter也是无效的。因为他们是在不同的文件夹中。
    从Flutter Beta2开始,assets存放在Native asset 文件夹中,在Native端用Android的AssertManager就可以访问了。

    val flutterAssetStream = assetManager.open("flutter_assets/assets/my_flutter_asset.png")
    

    在Flutter Beta2中,Flutter还是不能访问Native resources和assets。
    例如,给我们的Flutter项目中添加一个新的图片资源文件叫my_icon.png,然后决定它应该放在我们任意命名的** images文件夹中,你需要把基本图片(1.0x)放在 images**文件夹中,所有其他倍率的放在自己适当倍率命名的文件夹下。

    images/my_icon.png       // Base: 1.0x image
    images/2.0x/my_icon.png  // 2.0x image
    images/3.0x/my_icon.png  // 3.0x image
    

    接下来,你需要在pubspec.yaml文件中声明这些images。

    assets:
     - images/my_icon.jpeg
    

    你可以使用** AssetImage**访问你的图片:

    return new AssetImage("images/a_dot_burr.jpeg");
    

    或者直接在Image Widget中访问:

    @override
    Widget build(BuildContext context) {
      return new Image.asset("images/my_image.png");
    }
    

    如何保存String?如何处理本地化?

    Flutter现在没有专用的资源,例如String系统。现阶段,最好的方式就是将你所有的文字都保存在一个静态类中,然后在那里访问他们,例如:

    class Strings {
      static String welcomeMessage = "Welcome To Flutter";
    }
    

    然后在代码中你可以这么访问他们:

    new Text(Strings.welcomeMessage)
    

    Flutter有对Android的基本支持,尽管这个功能还在开发中。
    Flutter建议开发者使用intl package来做国际化或本地化。

    Flutter中的Gradle文件是什么?如何添加依赖?

    在Android中添加依赖通过添加Gradle编译脚本。Flutter用Dart自己的编译系统和Pub包管理器。这个工具将原生的Android和iOS封装App委托给他们各自的编译系统。
    在你的Flutter项目中,当Android文件夹下有Gradle文件,只有添加在每个平台集成所需的Native依赖才使用这些方法。通常情况下在Flutter中使用pubspec.yaml声明外部依赖来使用。Pub是一个查找Flutter package的好地方。

    相关文章

      网友评论

        本文标题:Flutter-Android开发者文档 -项目结构及资源

        本文链接:https://www.haomeiwen.com/subject/uymbyftx.html