Android_TextView

7024 ワード

TextViewに1行だけ表示させたいのですが、文字がTextViewの長さを超えたらどうしますか?
  • 省略番号
  • を先頭に表示
    android:singleLine="true"
    android:ellipsize="start"
  • 省略番号
  • が末尾に表示されます.
    android:singleLine="true"
    android:ellipsize="end"
  • 省略番号
  • を中央に表示
    android:singleLine="true"
    android:ellipsize="middle"
  • 横自動転がり(走馬灯効果)
  • android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:focusable="true"
    android:focusableInTouchMode="true"

    以上の4つの効果にandroid:singleLine="true"を追加します.TextViewのデフォルトは自動的に改行されるからです.
    android:ellipsizeは設定文字が長すぎる場合、どのように表示しますか?
    Android:marqueeRepeatLimit=「marquee_forever」は設定が永遠に繰り返されます.もちろん、具体的な数字を設定することもできます.
    Android:focusable="true"とandroid:focusableInTouchMode="true"は必ず加えなければなりません.そうしないと、スクロール効果が出ません.
    TextViewを垂直にスクロールするにはどうすればいいですか?
    Javaコードに次の一言を加えると垂直スクロールが可能
    textView.setMovementMethod(ScrollingMovementMethod.getInstance());

    RichTextView(リッチテキスト)
    同じTextViewで異なるフォントスタイルを設定するにはどうすればいいですか?
    使用するクラス:android.text.Spanned;      android.text.SpannableString;       android.text.SpannableStringBuilder
    SpannablesStringとSpannablesStringBuilderの違いはStringとStringBufferに相当します
    SpannablesStringとSpannablesStringBuilderは、太字、斜体、前景色、背景色、フォントサイズ、フォントスタイルなど、Rich TextViewを実現するために使用することができます.text.style.*で使用できるSpanタイプが多数定義されています.
    一般的なSpanは、以下のDemo setSpan(Object what,int start,int end,int flags)のflagsを参照して、0またはSpannedで定義された値に設定できます.
  • Spanned.SPAN_EXCLUSIVE_EXCLUSIVE---両端startとendが存在する端点
  • を含まない
  • Spanned.SPAN_EXCLUSIVE_INCLUSIVE---startは含まれませんが、end
  • は含まれています.
  • Spanned.SPAN_INCLUSIVE_EXCLUSIVE---startは含まれますが、end
  • は含まれません.
  • Spanned.SPAN_INCLUSIVE_INCLUSIVE---startとendが存在するエンドポイント
  • を含む
    このうち0はSpannedに相当する.SPAN_INCLUSIVE_INCLUSIVE
    ここのかばんには数学の中の開区間のようなものは含まれていません.閉区間です.
    次はデモです
    package com.tianjf;
    
    import android.app.Activity;
    import android.graphics.Color;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.text.SpannableString;
    import android.text.Spanned;
    import android.text.method.LinkMovementMethod;
    import android.text.style.AbsoluteSizeSpan;
    import android.text.style.BackgroundColorSpan;
    import android.text.style.BulletSpan;
    import android.text.style.ForegroundColorSpan;
    import android.text.style.ImageSpan;
    import android.text.style.RelativeSizeSpan;
    import android.text.style.ScaleXSpan;
    import android.text.style.StrikethroughSpan;
    import android.text.style.StyleSpan;
    import android.text.style.SubscriptSpan;
    import android.text.style.SuperscriptSpan;
    import android.text.style.TypefaceSpan;
    import android.text.style.URLSpan;
    import android.text.style.UnderlineSpan;
    import android.widget.TextView;
    
    public class RichTextViewDemoActivity extends Activity {
    
    	TextView mTextView = null;
    	SpannableString mSpannableString = null;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		mTextView = (TextView) findViewById(R.id.myTextView);
    
    		//      SpannableString  
    		mSpannableString = new SpannableString(
    				"                                 x1x2            X /bot");
    
    		//     (default,default-bold,monospace,serif,sans-serif)
    		mSpannableString.setSpan(new TypefaceSpan("monospace"), 0, 2,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		mSpannableString.setSpan(new TypefaceSpan("sans-serif"), 2, 4,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		//       (   ,  :  )
    		mSpannableString.setSpan(new AbsoluteSizeSpan(20), 4, 8,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		//       (   ,  :  )                
    		mSpannableString.setSpan(new ScaleXSpan(2.0f), 49, 51,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 2.0f           , X             ,     
    
    		//       (   ,  :  )                
    		mSpannableString.setSpan(new RelativeSizeSpan(0.5f), 8, 10,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 0.5f           
    		mSpannableString.setSpan(new RelativeSizeSpan(2.0f), 10, 12,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 2.0f           
    
    		//        
    		mSpannableString.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12,
    				15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //          
    
    		//        
    		mSpannableString.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //         
    
    		//         ,  ,  ,   
    		mSpannableString.setSpan(
    				new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),
    				20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(
    				new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new StyleSpan(
    				android.graphics.Typeface.BOLD_ITALIC), 24, 27,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //    
    
    		//      
    		mSpannableString.setSpan(new UnderlineSpan(), 27, 30,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		//      
    		mSpannableString.setSpan(new StrikethroughSpan(), 30, 33,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		//      
    		mSpannableString.setSpan(new SubscriptSpan(), 34, 35,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new SuperscriptSpan(), 36, 37,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    
    		//     (    setMovementMethod      )
    		mSpannableString.setSpan(new URLSpan("tel:4155551212"), 37, 39,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new URLSpan("mailto:[email protected]"),
    				39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new URLSpan("http://www.baidu.com"), 41, 43,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    		mSpannableString.setSpan(new URLSpan("sms:4155551212"), 43, 45,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //      sms:  smsto:
    		mSpannableString.setSpan(new URLSpan("mms:4155551212"), 45, 47,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //      mms:  mmsto:
    		mSpannableString.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47,
    				49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //   
    
    		//       
    		//                 ,             
    		mSpannableString.setSpan(new BulletSpan(
    				android.text.style.BulletSpan.STANDARD_GAP_WIDTH, Color.GREEN),
    				0, mSpannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		//     
    		Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
    		drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
    				drawable.getIntrinsicHeight());
    		mSpannableString.setSpan(new ImageSpan(drawable), 51, 55,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		mTextView.setText(mSpannableString);
    		mTextView.setMovementMethod(LinkMovementMethod.getInstance());
    	}
    }