1. 程式人生 > >TextView最後一行,不完全顯示。擷取顯示

TextView最後一行,不完全顯示。擷取顯示

1、效果圖大致如下:


本程式碼存在的弊端是存放在listView中,可能出現需要滑動才可以重新整理,設定文字。 

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Paint;
import android.text.TextPaint;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.ViewTreeObserver;
import android.widget.TextView;

import com.xingtuan.hysd.R;

/**
 * TextView的最後一行,不完全顯示文字。
 * Created by jiangp on 15/4/19.
 */
public class AutoTextView extends TextView {

    private int mEmptyWidth = 150;//空白文字寬度
    private int mMinLine = 2;

    public AutoTextView(Context context) {
        this(context, null);
    }

    public AutoTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.AutoTextView);
        int emptyWidth = (int) ta.getDimension(R.styleable.AutoTextView_atv_empty_width, 0);
        ta.recycle();
        if (emptyWidth > 0) {
            mEmptyWidth = emptyWidth;
        } else {
            mEmptyWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mEmptyWidth, context.getResources().getDisplayMetrics());
        }
    }

    public void setAutoText(final CharSequence text) {
        if (TextUtils.isEmpty(text)) {
            return;
        }
        this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                //可顯示文字區域的寬度
                int availableTextWidth = mMinLine * (getWidth() - getPaddingLeft() - getPaddingRight()) - mEmptyWidth;
                Paint paint = getPaint();
                paint.setTextSize(getTextSize());

                // 根據長度截取出剪裁後的文字
                String ellipsizeStr = (String) TextUtils.ellipsize(text, (TextPaint) paint, availableTextWidth, TextUtils.TruncateAt.END);
                setText(ellipsizeStr);
            }
        });
    }
}


相關推薦

TextView最後一行完全顯示擷取顯示

1、效果圖大致如下: 本程式碼存在的弊端是存放在listView中,可能出現需要滑動才可以重新整理,設定文字。  import android.content.Context; import android.content.res.TypedArray; import

最後幾本書珍藏了

前段時間清了幾十本書,收拾書架又發現幾本。清理空間低價賣給有需要的人,10元每本。郵費自理。一般發中通,北京市內普通書大概8塊,外地不清楚。厚的書郵費會貴一些。 信譽時代可以先付也可以書到了再付款,不接受退貨。  《這本書能讓你戒菸》,誰買了書想要一起郵過去,贈送。先到先得。  《這

珍藏了

接受 如果 alt 留言 http 方式 -1 發現 round 不知不覺自己買了這麽多書,前段時間收拾屋子,發現已經有好多書沒有翻看過了。因此打算清理空間低價賣給有需要的人,10元每本/買二送1。郵費自理。一般發韻達,北京市內普通書大概8塊,外地不清楚。厚的書郵費會貴一些

windows系統日誌提示“磁盤上的文件系統結構已損壞能使用”解決辦法

\Device\HarddiskVo 磁盤上的文件系統結構已損壞不能使用。 運行 chkdsk 實用程序 問題現象:“磁盤上的文件系統結構已損壞,不能使用。 請在卷 \Device\HarddiskVolume2 上運行 chkdsk 實用程序。”分析:出現這種情況無外乎有以下三種情況:1、非正常

Windows 10 安裝 VMware workstation 12 版本出錯兼容解決辦法:

oss 重新安裝 需要 ESS ext 方式 程序 text 重新 如果再程序和功能中沒有hyper怎麽辦呢?看我的,就是沒有的? 解決方法: 1、此時需要通過命令的方式去禁用。找到windows powershell,運行 2、輸入命令:bcdedit /set hyp

mysql的主從複製從庫設為只讀能寫

mysql的主從複製,主要通過binlog日誌來實現主要步驟:1  master授權從庫連線(master上操作)grant replication slave on *.* to 'backup'(使用者名稱)@'192.168.218.131(從庫ip)' identif

判斷當前的app是否是debug版本避免空容易出錯

相信網上有很多的文章都介紹了app是否是debug版本的程式碼,無一我想要的那個。 廢話不說,這個是為了避免異常 public static boolean isAppDebug() { if (StringUtils.isSpace(context.getPacka

.gitignore文件中添加忽略文件或者目錄後起作用

alt 推送 gitignore image inf mage 之前 如果 技術分享 出現該問題放入原因: 在git庫中已存在了這個文件,之前push提交過該文件。 .gitignore文件只對還沒有加入版本管理的文件起作用,如果之前已經用git把這些文件納入了版本庫,就不

【Google、在奮鬥】不要總想著未來因為未來是你想的那樣、沉下心做下去去患得患失

Github地址: https://github.com/Jay-Goo 強大的Seekbar: https://github.com/Jay-Goo/RangeSeekBar 漂亮的多選框: https://github.com/Jay-Goo/MultiSelectPop

python2和python3輸出資料用空格隔開換行

python3:加入end= ' '引數。 python2:以逗號結尾。 兩個例子如下: >>> a = [1, 2, 3, 4] # python3編譯環境 >>> for i in a: ... print(

Latex中最後一行文獻能對齊

在檢查論文的時候,每一個文獻都仔細看一遍,居然發現最後一個參考文獻自動生成不能對齊。  解決方法就是在latex檔案中新增\usepackage[keeplastbox]{flushend}這一句,建議放在latex檔案較上方位置。 轉載自:https://blog.csdn.net/

shell讀取檔案第一行和最後一行小數的運算比較

1. 讀取檔案的第一行:head -n +1 file.txt 讀取檔案的最後一行: tail -n -1 file.txt echo 12:30:55 | cut -d: -f 1 結果為12,意思為將字串12:30:55以:符號進行拆分,輸出索引為1的值。 -d後跟以什麼字元進行拆分, -f 後的

VS2010的BUG?類名字問題變藍色

不知道諸位有沒有出現過這樣的情況?如下圖 現在我用的VS2010的版本如下, Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel Microsoft .NET Framework Version 4.0.30

謹以此記錄下自己的每一點、每一滴、每一步,以督促自己忘目標忘理想

一、簡介 Qt記憶體管理機制:Qt 在內部能夠維護物件的層次結構。對於可視元素,這種層次結構就是子元件與父元件的關係;對於非可視元素,則是一個物件與另一個物件的從屬關係。在 Qt 中,在 Qt 中,刪除父物件會將其子物件一起刪除。 C++中de

經典面試問題: Top K 之 ---- 海量資料找出現次數最多或重複的

作者:林冠巨集 / 指尖下的幽靈 僅列舉一些解決方法,事實的解決方案是非常多的。 這些問題都是面臨著有如下的考慮: 記憶體不足以放下所有的數。 機器CPU的核數不夠。 ... 問這些問題的意義: 如果能把這些問題答好,必然是綜合計算機各方面的知識,從記憶體到資料結構甚至還涉及到硬體,方法面面

Vue專案解決element元件環形進度條超過100%時渲染問題

問題描述:使用element元件的環形進度條時,給出的屬性只有一個引數, 要求只能填寫1-100的數,當我們的數值超過100時,想要把環形渲染滿,但問題出來了,700以上的數值時,圖層就不渲染了,如下圖所示:              

請編寫相關函式來完成對一段英文字串進行字母統計功能出現最多那個字母的出現次數區分大小寫

思路:1、對字串進行過濾,把英文字母過濾出來。2、將所有英文字母統一轉成小寫(大寫)。3、將待求的字串與26個字母進行比較並統計個數4、統計出現最多的字母。原始碼:#include <stdio.h>#include <stdlib.h>#includ

jqgird 設定多選 只能選中 最後一行中滑鼠點選的一行

雖然江湖上有很多答案了,但是也是我找了好久了 平常都是這樣的,有屬性 ID ,可能預設為唯一的 colModel : [                          {name : 'id',     index : 'id',     width:'88px' ,

ExtJS中常用類和函式(自己總結的完全)

Ext類1.  Ext.onReady(Function fn,Object scope,boolean override)2.  Ext.get(Mixed el)3.  Ext.select(String/Array selector,[Boolean unique],[

iOS開發的庫的列表完全是開源庫

載入等待:MBProgressHUD、MMProgressHUD側邊欄:ViewDeck、JASidePanels網格檢視:GMGridView下拉重新整理:SVPullToRefresh、UIRefreshControl、EGOTableViewPullRefreshGif播放:OLImageView富文字