我正在将我的应用程序翻译成几种语言,但现在我正在努力解决一个问题!我有几个图像上的文字,有一种方法来提供使用国家代码绘制资源?如果我使用国家代码将drawable添加到应用程序中,是否会增加应用程序的大小?我不想让一个1MB的应用因为这些图片而变成4或5。
谢谢!
等于用res目录values-es values-fr values设置不同的语言…您可以使用以下目录为每个位置设置不同的drawables:
draw_es draw_fr…http://developer.android.com/training/basics/supporting-devices/languages.html
请记住,目录的额外信息具有特殊的重要性,您应该将其放在正确的位置http://developer.android.com/guide/topics/resources/providing-resources.html例如,drawable-es-hdpi
你的apk大小的问题,我想,你不需要设置所有的图像为所有的国家不同,不是吗?通常您只需要配置几个图像
是的,按国家提供资源是可能的。查看这个答案,了解如何做到这一点:本地化和drawables
它肯定会增加你的应用程序的大小。它是,像软件开发中的其他一切,性能(或图像质量)和资源(在这种情况下,apk的大小)之间的妥协。为了避免应用程序的大小呈指数级增长,你可以尝试按地区而不是国家提供资源,或者简单地只提供hdpi版本。
如果你不想用不同的drawables来增加你的apk的大小,你可以编写一个自定义的ImageView,并在上面设置一个字符串(将被翻译)的文本,或者把一个textView放在ImageView的顶部,将它们设置在一个相对的布局中,像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
>
<ImageView
android:id="@+id/yImage"
android:layout_width="fill_parent"
android:layout_height="25dp"/>
<TextView
android:id="@+id/yTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/yImage"
android:layout_alignLeft="@+id/yImage"
android:layout_alignRight="@+id/yImage"
android:layout_alignTop="@+id/yImage"
android:background="@color/transparent"
android:lines="2"
android:textColor="@color/Black"
android:textSize="14sp"
android:textStyle="bold" />
</RelativeLayout>
使用框架布局也很容易