解決安卓TextView異常換行,參差不齊等問題


參考:http://blog.csdn.net/u012286242/article/details/28429267?utm_source=tuicool&utm_medium=referral

關於TextView異常換行,參差不齊問題分析:安卓TextView第二行開始(包括第二行),每行開頭第一個字符不能為字母、數字、標點符號、以及特殊字符,因為它們都為半角字符,所以我們要將半角字符改為全角字符……

上圖:

       沒有轉換為半角字符前效果圖:                                                    

                                                                        

轉換為全角字符后效果圖:

                           

布局文件:main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#ffffff"
              android:gravity="center">
    <TextView android:id="@+id/Content"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textColor="#000000"
              android:layout_marginLeft="10dp"
              android:layout_marginRight="10dp"
              android:textSize="16dp"/>
</LinearLayout>

 java文件:MyActivity.java

package com.example.androidTest;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MyActivity extends Activity {
    private TextView Content;
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Content=(TextView)findViewById(R.id.Content);
        String input="移動OA上線會議計划於2012年05月19日9點在102會議室准時召開,請各位准時參加會議!房間安靜的身份辣椒粉杜蕾斯打附加賽科技大廈防雷接地薩拉會計分錄快點撒解放路口的就是大家是否繳費的盧卡斯解放東路卡薩!";
        String cc=ToSBC(input);
        Content.setText("        "+cc);
    }
    //導致TextView異常換行的原因:安卓默認數字、字母不能為第一行以后每行的開頭字符,因為數字、字母為半角字符
    //所以我們只需要將半角字符轉換為全角字符即可,方法如下
    public static String ToSBC(String input) {
        char c[] = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == ' ') {
                c[i] = '\u3000';
            } else if (c[i] < '\177') {
                c[i] = (char) (c[i] + 65248);
            }
        }
        return new String(c);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM