1. 程式人生 > >Android TextView限定行數最大值,點選按鈕顯示所有內容

Android TextView限定行數最大值,點選按鈕顯示所有內容

package com.example.eventbusdemo;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;


public class TextViewActivity extends Activity{


private TextView textview;
private ImageView imageview;
private boolean   isimageview=false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_textview);
textview=(TextView) findViewById(R.id.activity_textview);
imageview=(ImageView) findViewById(R.id.activity_imageview);
textview.setText("““我們不想看到以賽亞-托馬斯受傷。向他這一個不可思議的賽季致敬,他今年所完成的事情,以及在他妹妹不幸去世的情況下,他在季後賽中所做的事情。但是,對於我們一個整體而言,我們面對的從來都不只是一個人。這不是我們關注的焦點。這一直都是團隊的努力,以及我們如何能夠拿出最好的比賽計劃來對抗他們的球隊。他們仍然很好地執行教練意圖。他們仍然有一些球員會去迎接挑戰,會站出來,所以我們必須為此做好準備。”我們不想看到以賽亞-托馬斯受傷。向他這一個不可思議的賽季致敬,他今年所完成的事情,以及在他妹妹不幸去世的情況下,他在季後賽中所做的事情。但是,對於我們一個整體而言,我們面對的從來都不只是一個人。這不是我們關注的焦點。這一直都是團隊的努力,以及我們如何能夠拿出最好的比賽計劃來對抗他們的球隊。他們仍然很好地執行教練意圖。他們仍然有一些球員會去迎接挑戰,會站出來,所以我們必須為此做好準備。”“我們不想看到以賽亞-托馬斯受傷。向他這一個不可思議的賽季致敬,他今年所完成的事情,以及在他妹妹不幸去世的情況下,他在季後賽中所做的事情。但是,對於我們一個整體而言,我們面對的從來都不只是一個人。這不是我們關注的焦點。這一直都是團隊的努力,以及我們如何能夠拿出最好的比賽計劃來對抗他們的球隊。他們仍然很好地執行教練意圖。他們仍然有一些球員會去迎接挑戰,會站出來,所以我們必須為此做好準備。”");

//textview.setText("你好啊啊啊");

textview.post(new Runnable() {

@Override
public void run() {
boolean b=isTextView();
Log.d("TextViewActivity", "b----:"+b);
if(b){
imageview.setVisibility(View.VISIBLE);
}else{
imageview.setVisibility(View.GONE);
}
}
});


imageview.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
if(!isimageview){
imageview.setBackgroundResource(R.drawable.down);
textview.setMaxLines(10000);

isimageview=true;
}else{
imageview.setBackgroundResource(R.drawable.up);
textview.setMaxLines(3);
isimageview=false;
}
}
});
}

private boolean isTextView(){ 
float m=textview.getPaint().measureText(textview.getText().toString());
float n=3*(textview.getWidth()-textview.getPaddingRight()-textview.getPaddingLeft());
return m>n; 
}

}