1. 程式人生 > >android實現gif圖與文字混排

android實現gif圖與文字混排

public class AnimatedImageSpan extends DynamicDrawableSpan {

    private Drawable mDrawable;

    public AnimatedImageSpan(Drawable d) {
        super();
        mDrawable = d;
        // Use handler for 'ticks' to proceed to next frame 
        final Handler mHandler = new Handler();
        mHandler.post(new Runnable() {
            public void run() {
                ((AnimatedGifDrawable)mDrawable).nextFrame();
                // Set next with a delay depending on the duration for this frame 
                mHandler.postDelayed(this, ((AnimatedGifDrawable)mDrawable).getFrameDuration());
            }
        });
    }
    @Override
    public Drawable getDrawable() {
        return ((AnimatedGifDrawable)mDrawable).getDrawable();
    }

    @Override
    public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
        Drawable d = getDrawable();
        Rect rect = d.getBounds();

        if (fm != null) {
            fm.ascent = -rect.bottom; 
            fm.descent = 0; 

            fm.top = fm.ascent;
            fm.bottom = 0;
        }

        return rect.right;
    }
    @Override
    public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
        Drawable b = getDrawable();
        canvas.save();

        int transY = bottom - b.getBounds().bottom;
        if (mVerticalAlignment == ALIGN_BASELINE) {
            transY -= paint.getFontMetricsInt().descent;
        }

        canvas.translate(x, transY);
        b.draw(canvas);
        canvas.restore();
    }
}

相關推薦

android實現gif文字

public class AnimatedImageSpan extends DynamicDrawableSpan { private Drawable mDrawable; public AnimatedImageSpan(Drawable d) { super();

ReactNative系列之十九表情emoji文字的兩種方案實現

方案一:使用react-native-emoji這個庫優點:文字和圖片混排單行多行,居中顯示都正常缺點:依賴手機的環境,只能根據系統裡的表情進行顯示?不能自定義表情。。。emoji...這種方案基本不可行,使用者體驗差方案二:<Text>    <Text&

checkbox文字無法對齊到一行的解決辦法

內容 cal 無法 inpu div 解決 一行 name align 直接上代碼: <span><input style="vertical-align:middle" type="checkbox" name="checkbox" /><

editText裡面文字並編輯以後存裡面的文字和圖片資訊等

package com.liu.demo; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; i

WPF仿QQ聊天框表情文字實現

二話不說。先上圖 圖中分別有檔案、文字+表情、純文字的展示,對於同一個list不同的展示形式,很明顯,應該用多個DataTemplate,那麼也就需要DataTemplateSelector了: class MessageDataTemplateSe

【iOS 0 行程式碼系列】之 0 行程式碼實現TableView,CollectionView無資料佔位文字

如果你還沒有看過下面的文章,可以花點時間看看 >>>>>1.一行程式碼完成“空TableView佔位檢視”管理: 原理: 1.獲取 Section 的數量 2.

tablayout實現新增圖片文字

現在專案使用Tablayout實現新增文字與圖片一起,點選某項是,實現文字更換顏色,圖片更換。 具體實現效果。 下面貼出具體實現程式碼: 佈局檔案 icon_view: <?xml version="1.0" encoding="utf-8"?> <com.

Latex: 減少文字之間的空白間隙

參考: Remove space after figure and before text Latex: 減少圖與文字之間的空白間隙 論文中圖與文字之間的空白間隙過大,導致排版不大美觀。解決方法是在\begin{document}前定義\textfloatsep的長度,例如定義為5pt:

iOS 上利用 fallback 機制為不同語言的文字 (script) 設定字型,從而使得文字更為優雅

如果您是一位 WEB 開發者,相信您對 CSS 的 font-family 屬性一定不會陌生。通常我們會為 font-family 屬性設定一長串的字型(家族)列表,就像這樣的: .text { font-family: Menlo, Monaco, Consolas, "Courier

Android 實現TextView的部分文字和網路連結及電話號碼點選監聽

前言 最近在寫專案的時候遇到了一個這樣的需求,要像qq一樣,點選評論的者的名字要跳轉評論者的使用者資訊介面,並且點選評論資訊中的web連結要跳轉到WebActivity,同時如果是其他數字的話要像qq一樣點選並顯示底部Dialog提示是播打電話還是複製號碼。 效

Android實現蜘蛛網繪製

先看看效果圖,別讓文字把你們嚇跑了. 下面開始講解一下這個效果圖的實現過程!!!! 首先,講解一下思路: 1.繪製網格(4個六邊形) 2.繪製6條軸 3.繪製頂點 4.根據頂點座標繪製path 5.利用隨機函式隨機生成一組數值並展示 思路就是這些,在知道怎麼

Android 實現和分享

直接上程式碼: xml的佈局: <Button android:id="@+id/btn_jp" android:layout_marginTop="10dip" android:layout

Android實現方式

本文介紹了Android 實現截圖方式整理,分享給大家。希望對大家有幫助可能的需求:截自己的屏截所有的屏帶導航欄截圖不帶導航欄截圖截圖並編輯選取一部分自動擷取某個空間或者佈局擷取長圖在後臺去截圖1.只擷取自己應用內部介面1.1 擷取除了導航欄之外的螢幕?12345678910

Android實現方式整理(總結)

http://www.jb51.net/article/119881.htm本文介紹了Android 實現截圖方式整理,分享給大家。希望對大家有幫助可能的需求:截自己的屏截所有的屏帶導航欄截圖不帶導航欄截圖截圖並編輯選取一部分自動擷取某個空間或者佈局擷取長圖在後臺去截圖1.

android實現操作

最近開發了一些Android小遊戲,想在遊戲結束或者完成之後把整個螢幕擷取下來並分享到社交平臺上。先上效果吧。 網上一搜,截圖的方法很多。這裡只貼出了一種,將擷取到Bitmap賦給Dialog上的ImageView並彈出對話方塊。對對話方塊加了彈出和收起的動畫。看起來就

Android實現圖片快取非同步載入

ImageManager2這個類具有非同步從網路下載圖片,從sd讀取本地圖片,記憶體快取,硬碟快取,圖片使用動畫漸現等功能,已經將其應用在包含大量圖片的應用中一年多,沒有出現oom。 Android程式常常會記憶體溢位,網上也有很多解決方案,如軟引用,手動呼叫recycle

Android實現和截長功能的幾種方法

一般情況下各種型號的手機都會有自帶的截圖功能,也會有諸如“開關機鍵+音量鍵”的截圖快捷鍵,只要手機是亮屏狀態,都會將手機螢幕的可視區域(包含狀態列)全部擷取下來。如果開發中想要調取系統的截圖功能,理論上講是可以的,需要在APK中呼叫“adb shell screencap -

Android實現,將截檔案儲存到本地資料夾

Android實現對當前介面截圖,並將截圖檔案存放至本地資料夾 首先需要動態申請兩項許可權(Android6.0後危險許可權之類的都需要動態申請),在AndroidManifest.xml中靜態新增 <uses-permission android:name="android.perm

Android實現全景

在玩頭條的時候,現在我們會發現有很多的全景圖的廣告這樣快看起來非常的酷。今天就來說說這個小效果的實現。我瞭解的有2種方式的實現: 1、Three.js,和前端互動實現的 2、依賴庫:OpeanGL 哈哈我就挑個簡單的方式來實現,選擇第二種方式。 (1)、在build。gra

Android實現限制EditText輸入文字的數量

一: 宣告控制元件。          TextView hasnumTV;         TextView hasnum;// 用來顯示剩餘字數         int num = 50;// 限制的最大字數 二: 主要的方法: hasnumTV = (Tex