日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发如何让app联网,Android 开发:如何让App支持RTL模式

發布時間:2023/12/20 Android 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发如何让app联网,Android 开发:如何让App支持RTL模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

講真,好久沒寫博客了,2016都過了一半了,趕緊重新撿起來。(個人感慨,和內容無關……

所謂RTL,顧名思義也就是Right To Left,是一種阿拉伯語、波斯語等情況下從右往左的閱讀方式。當所開發的App等面向海外用戶時需要做這個適配。

從Android 4.2開始支持原生的RTL模式,對此之前的版本我也不想多做說明,這些老版本要是還支持那Android碎片化就沒完沒了了。

正文

如何查看效果

首先要說的是,想要看RTL模式,不必去把手機中的語言/國家設置到阿拉伯等,只需要在“開發者選項”中勾選“強制使用從右到左的布局方向“,這樣真的是方便太多了。

此處以MIUI為例,大家也不妨自己動手試試。

如圖,原本左右兩側的控件發生了對調,值得注意的是圖中紅色方框標注的圖標發生了翻轉(更標準的說法是”鏡像“)。

如何支持RTL

是不是很有意思呢,那么如果在你的App中適配RTL呢?

1,需要在清單文件總隊RTL的支持做一個聲明,放到< application >節點下。

android:supportsRtl="true"

2,將布局中的”left、right“相關的屬性換成對應的”start、end“屬性。

這一步可能用說的不夠清晰,看代碼看圖!

android:id="@+id/button"

android:text="A"

android:layout_width="60dp"

android:layout_height="40dp" />

android:id="@+id/button2"

android:text="B"

android:layout_toRightOf="@id/button"

android:layout_width="60dp"

android:layout_height="40dp" />

android:id="@+id/button3"

android:text="C"

android:layout_toRightOf="@id/button2"

android:layout_width="60dp"

android:layout_height="40dp" />

應該可以看出來這是在一個相對布局中,默認情況下是這樣的:

開啟RTL后,卻是這樣的:

為什么B、C按鈕不見了?因為根據屬性,它們都在A的右邊,這已經超出的屏幕邊界。

如果我們對布局做一點修改:

android:layout_toRightOf

改成

android:layout_toEndOf

如果有left,也照搬改成start就好。

頁面不想支持RTL怎么辦

有一些界面你不想它支持RTL,或者它本身不需要支持,那又該如何呢?比如說撥號界面,難道要把數字鍵也鏡像過去嗎:

只需要加上這么一句就好了呀。

layoutDirect可以使用4種屬性:

ltr:從左往右

rtl:從右往左

inherit:從上層視圖中繼承

locale:由Locale決定

分別對應的int值為0,1,2,3。

圖片怎么辦

只需要創建一個文件夾,把鏡像后的圖片放進去即可,代碼中不用做任何修改。

drawable-ldrtl-xhdpi

drawable-xhdpi

分辨率是一一對應的

當然了,除了對圖像做預處理外,要是想用代碼直接控制也是可以的。

private ImageView image2;

// 省略

image2 = (ImageView) findViewById(R.id.image2);

Drawable arrow = getResources().getDrawable(R.drawable.arrow);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

if (arrow != null) {

arrow.setAutoMirrored(true);

}

}

image2.setImageDrawable(arrow);

結尾

差不多就是這些了,有什么問題直接留言吧。

代碼的話,弄個了demo,托管到GitHub上了,打算以后將布局相關的博客代碼都放到這個工程里,歡迎大家Star啊。

總結

以上是生活随笔為你收集整理的Android开发如何让app联网,Android 开发:如何让App支持RTL模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。