Android 如何掌握阿拉伯语';aarab&x27;角色?请看我的密码
我正在尝试用自定义字体显示阿拉伯语文本。我的代码如下:Android 如何掌握阿拉伯语';aarab&x27;角色?请看我的密码,android,textview,Android,Textview,我正在尝试用自定义字体显示阿拉伯语文本。我的代码如下: package com.androidbook.test; import java.io.BufferedInputStream; import java.io.InputStream; import org.apache.http.util.ByteArrayBuffer; import android.app.Activity; import android.graphics.Typeface; import android.os
package com.androidbook.test;
import java.io.BufferedInputStream;
import java.io.InputStream;
import org.apache.http.util.ByteArrayBuffer;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;
public class ArabicTextActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.arabic_display);
TextView arabicTextView;
Typeface arabicFont;
arabicTextView = (TextView)findViewById(R.id.arabicTextDisplayTextView);
arabicFont =Typeface.createFromAsset(getAssets(),"me_quran.ttf");
arabicTextView.setTypeface(arabicFont);
arabicTextView.setTextSize(40);
InputStream is = getResources().openRawResource(R.raw.arabic_text);
BufferedInputStream bis = new BufferedInputStream(is);
int myInt=0;
try{
ByteArrayBuffer myByteArray = new ByteArrayBuffer(100);
while((myInt = bis.read())!=-1)
{
if(myInt == 10) break;
myByteArray.append((byte)myInt);
}
String arabicLine = new String(myByteArray.toByteArray(), 0, myByteArray.length(), "UTF-8");
arabicTextView.setText(arabicLine);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
和阿拉伯语的display.xml是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/quranDisplayItemLinearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:id="@+id/arabicTextDisplayTextView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Arabic" />
</LinearLayout>
其中res/raw/as arabic_text.txt在记事本中显示为(字体名称:me_quran.ttf,字体大小40)
但在模拟器中显示为:
您可以注意到,小字符(阿拉伯语中称为aaraab字符)根本没有调整。。我该如何解决这个问题?
///////////////////////////////////////////////////////////////////
///////////
////
/////
使用DroidSansArabic.ttf后的结果
根据的字符映射图“me_quran.ttf”判断,模拟器显示的似乎是它应该显示的。
这个字体看起来和我见过的其他阿拉伯语字体太不一样了,你可能想用另一种字体。从“me_quran.ttf”的字符映射判断,模拟器显示的似乎是它应该显示的。
这种字体看起来和我见过的其他阿拉伯语字体太不一样了,你可能想换一种字体。这是我的字体。它是一种有效的opentype字体,并具有大多数其他阿拉伯语字体所不具备的一些高级功能 这里的问题是Android。它的阿拉伯语支持太基本了,它不了解这种字体的高级排版功能。你不能用它来显示好的阿拉伯语。你能得到的最好的可能是像tahoma一样的东西,它使用相同的位置作为变音符号 为了解决这个问题,我对字体进行了更新,使其能够与Android和Iphone配合使用。不幸的是,由于这些平台的性质,人们永远无法使用标准阿拉伯语文本来获得良好的阿拉伯语支持。我所做的是使用修改后的文本,以便得到我想要的结果。结果是基本字体,但比那些系统字体好看得多。抱歉,我无法发布图像(此处为新用户)
只是提醒一下,古兰经不是免费的字体。它只对免费项目免费。如果您想获得我的解决方案,可以直接与我联系。这是我的字体。它是一种有效的opentype字体,并具有大多数其他阿拉伯语字体所不具备的一些高级功能 这里的问题是Android。它的阿拉伯语支持太基本了,它不了解这种字体的高级排版功能。你不能用它来显示好的阿拉伯语。你能得到的最好的可能是像tahoma一样的东西,它使用相同的位置作为变音符号 为了解决这个问题,我对字体进行了更新,使其能够与Android和Iphone配合使用。不幸的是,由于这些平台的性质,人们永远无法使用标准阿拉伯语文本来获得良好的阿拉伯语支持。我所做的是使用修改后的文本,以便得到我想要的结果。结果是基本字体,但比那些系统字体好看得多。抱歉,我无法发布图像(此处为新用户)
只是提醒一下,古兰经不是免费的字体。它只对免费项目免费。如果您想获得我的解决方案,可以直接与我联系。您正在应用程序中使用
“me\u quran.ttf”
,并在记事本中显示“arabic\u font”
。。它们是一样的吗?您正在应用程序中使用“me\u quran.ttf”
,并在记事本中显示“阿拉伯语字体”
。。它们是一样的吗?即使我不设置字体,让arabicTextView使用它的默认字体,并且通过使用arabicTextView.setText(R.string.arabic_string);wehre R.id.arabicِu string在字符串中的定义为“㶖ِْْٱلِّّْْمِِِلِِِِِّّ”。它显示了与阿拉布字符相同的问题,它们与其他字符重叠。我认为如果我使用字体“Al-Qalam-Quran-Majeed.ttf”,它会起作用。因为在MS Notepad中显示阿拉伯语文本会有不同,让我知道这是怎么回事,如果这不起作用,我会再检查一些。尝试使用字体,它来自一个开源的古兰经android应用程序,整个应用程序托管在@Tahir_ChDear brother,jaza-k-Allah,谢谢你的帮助。我从你建议的链接中尝试了DroidSansArabic.ttf。。同样的问题也会发生。。我正在发布结果的屏幕截图。即使我没有设置字体并让arabicTextView使用其默认字体,也要执行arabicTextView.setText(R.string.arabic_string);wehre R.id.arabicِu string在字符串中的定义为“㶖ِْْٱلِّّْْمِِِلِِِِِّّ”。它显示了与阿拉布字符相同的问题,它们与其他字符重叠。我认为如果我使用字体“Al-Qalam-Quran-Majeed.ttf”,它会起作用。因为在MS Notepad中显示阿拉伯语文本会有不同,让我知道这是怎么回事,如果这不起作用,我会再检查一些。尝试使用字体,它来自一个开源的古兰经android应用程序,整个应用程序托管在@Tahir_ChDear brother,jaza-k-Allah,谢谢你的帮助。我从你建议的链接中尝试了DroidSansArabic.ttf。。同样的问题也会发生。。我正在发布结果的截图。。