android框架----下沉文字Titanic的使用

  Titanic is a simple illusion obtained by applying an animated translation on the TextView TextPaint Shader's matrix.

?

Titanic的使用

Titanic的使用,項目結構如下:


一、下載Titanic并且部署到項目中

Titanic的項目地址: https://github.com/RomainPiel/Titanic。

在項目中我們使用Titanic需要三個文件: Titanic.java、TitanicTextView.java和wave.png。當然wave.png是可以修改的,在TitanicTextView.java中引用了該資源。

?

二、它的使用比較簡單,就是和普通的自定義View的使用一樣

在xml中定義TitanicTextView

<com.romainpiel.titanic.library.TitanicTextViewandroid:id="@+id/titanic_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#212121"android:textSize="70sp"

開始動畫

titanic = new Titanic();
titanic.start(myTitanicTextView);

取消動畫

titanic.cancel();

?

三、我們還可以修改它的字體,這也和普通的修改字體一樣

在assets中引入ttf字體,在這里我們可以寫一個有的幫助類Typefaces

package com.example.titanictextview;import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;import java.util.Hashtable;/*** Created by Linux on 2016/6/9.*/
public class Typefaces {private static final String TAG = "Typefaces";private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();public static Typeface get(Context c, String assetPath) {synchronized (cache) {if (!cache.containsKey(assetPath)) {try {Typeface t = Typeface.createFromAsset(c.getAssets(), assetPath);cache.put(assetPath, t);} catch (Exception e) {Log.e(TAG, "Could not get typeface '" + assetPath + "' because " + e.getMessage());return null;}}return cache.get(assetPath);}}
}

TitanicTextView的setText方法前,調用

titanicTextView.setTypeface(Typefaces.get(this, "Satisfy-Regular.ttf"));

?

四、運行效果如下

MainActivity.java:

package com.example.titanictextview;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;import com.romainpiel.titanic.library.Titanic;
import com.romainpiel.titanic.library.TitanicTextView;public class MainActivity extends AppCompatActivity {private TitanicTextView titanicTextView;private Titanic titanic;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);titanicTextView = (TitanicTextView) findViewById(R.id.titanic_tv);titanic = new Titanic();}// 點擊開始public void startTitianic(View view) {titanicTextView.setTypeface(Typefaces.get(this, "Satisfy-Regular.ttf"));titanicTextView.setText("I love you!");titanic.start(titanicTextView);}// 點擊結束public void cancelTitianic(View view) {titanic.cancel();}
}
View Code

?

友情鏈接

?

轉載于:https://www.cnblogs.com/huhx/p/androidTitanicView.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372845.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 自動安裝mysql_Linux安裝mysql

一、下載這里我創建了一目錄software用于存放我們待會要下載的mysql包&#xff0c;先去到該目錄命令&#xff1a;cd /software命令&#xff1a;wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar下載完成后&#xff0c;你會在software這個…

Quartz Scheduler插件–隱藏的寶藏

盡管在官方文檔中進行了簡要描述&#xff0c;但我相信Quartz插件了解得還不夠多&#xff0c;看看它們有多有用。 本質上&#xff0c;Quartz中的插件是方便的類&#xff0c;用于包裝基礎偵聽器的注冊。 您可以自由編寫自己的插件&#xff0c;但我們將專注于Quartz隨附的現有插件…

mysql查詢表名匹配只有字母的_MySQL按某些匹配字母查詢表

MySQL查詢是MySQL的核心功能&#xff0c;有時候我們需要查找帶有某些匹配字母的表。下文對該MySQL查詢方式作了詳細的介紹&#xff0c;供您參考。在MySQL中我們可以使用LIKE或者NOT LIKE操作符進行比較。在MySQL中模式默認是不區分大小寫的。查詢示例&#xff0c;student表----…

hdu 1181(Floyed)

變形課 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 20748 Accepted Submission(s): 7494 Problem Description呃......變形課上Harry碰到了一點小麻煩,因為他并不像Hermione那樣能夠記住所有的咒語而隨意的…

讀書筆記-你不知道的JS上-混入與原型

繼承 mixin混合繼承 function mixin(obj1, obj2) {for (var key in obj2) {//重復不復制if (!(key in obj1)) {obj1[key] obj2[key];}}return obj1;} 這種復制是淺復制&#xff0c;對象或者數組函數等都是同一個引用&#xff0c;改變obj1的會同時影響obj2。 寄生繼承 ... 隱式…

JUnit和Hamcrest:在assertEquals上進行改進

在我的博客文章中&#xff0c;Java越來越接受靜態導入嗎&#xff1f; &#xff0c;我討論了在Java中越來越多地使用靜態導入來使代碼在某些情況下更流暢。 Java 單元測試特別受靜態導入的影響&#xff0c;在此博客文章中&#xff0c;我提供了一個簡單的示例&#xff0c;說明如何…

mysql delete temporary denied_這些錯誤是什么意思?djang中的mysql

我試著運行一個程序&#xff0c;我被給予了一個例子&#xff0c;它就像一個購物網站&#xff0c;使用MySQL數據庫而不是Django提供的原始數據庫&#xff01;我只是想看看有沒有人理解這些錯誤的含義&#xff1f;任何信息都將不勝感激&#xff01;我本可以提供網頁的代碼&#x…

C語言 · 芯片測試

基礎練習 芯片測試 時間限制&#xff1a;1.0s 內存限制&#xff1a;512.0MB問題描述有n&#xff08;2≤n≤20&#xff09;塊芯片&#xff0c;有好有壞&#xff0c;已知好芯片比壞芯片多。每個芯片都能用來測試其他芯片。用好芯片測試其他芯片時&#xff0c;能正確給出被測試…

Animation用法

測試代碼及說明&#xff1a; <!DOCTYPE html> <html lang"en-US"> <head><meta charset"UTF-8"><title>Simple CSS3 Animation</title><style type"text/css">#demo {position: absolute;left: 30%;t…

mysql dese_MySQL 5.6-類似于DENSE_RANK的功能,無需訂購

小編典典對于 MySQL版本<8.0(OP的版本是5.6)&#xff1a;問題陳述看起來需要DENSE_RANK功能groupVarian; 但是事實并非如此。正如 GordonLinoff解釋的那樣 &#xff1a;您似乎希望按它們在數據中出現的順序來枚舉它們。假設您的表名是t(請為您的代碼相應地更改表名和字段名)…

Spring和JSF集成:動態導航

通常&#xff0c;您的JSF應用程序將需要超越基本的靜態導航并開始做出動態導航決策。 例如&#xff0c;您可能想根據用戶的年齡重定向他們。 大多數JSF教程建議通過將命令的action屬性綁定到支持bean來實現動態導航&#xff1a; <h:commandButton action"#{bean.action…

通過富文本改變UITextFieldPlaceholder顏色

1、通過屬性 a、 //文字屬性(一般) NSMutableDictionary *attrs [NSMutableDictionary dictionary]; attrs[NSForegroundColorAttributeName] [UIColor blueColor]; NSAttributedString *placeholderStr [[NSAttributedString alloc] initWithString:"手機號" a…

阻塞/非阻塞/同步/異步方法和多線程的關系?沒有任何關系,倆不挨著

1.阻塞非阻塞異步同步是針對方法說的&#xff0c;是評判一個方法運行狀態的。和多線程完全兩個級別。 2.阻塞非阻塞異步同步是針對方法說的&#xff0c;是評判一個方法運行狀態的。和多線程完全兩個級別。 3.阻塞非阻塞異步同步是針對方法說的&#xff0c;是評判一個方法運行狀…

mysql備份 where_MySQL備份與還原

1.mysqldumpmysqlbinlog介紹mysqldump備份結合binlog日志恢復。MySQL備份一般采取全庫備份加日志備份的方式&#xff0c;例如每天執行一次全備份&#xff0c;每小時執行一次二進制日志備份&#xff0c;這樣在MySQL故障后可以使用全備份和日志備份將數據恢復到最后一個二進制日志…

JMeter:負載測試關系數據庫

Apache JMeter是完全使用Java編寫的性能測試工具。 可以在請求/響應模型上運行的任何應用程序都可以使用JMeter進行負載測試。 關系數據庫也不例外&#xff1a;接收sql查詢&#xff0c;執行它們并返回執行結果。 我將向您展示使用JMeter的圖形用戶界面設置測試方案有多么容易。…

new: Set up a window

Nehe的教程確實太老了&#xff0c;不過我認為它也能夠讓我了解OpenGL3.2以前的管線渲染模式&#xff0c;即使它在現在已經不常見了。因為想要了解&#xff0c;所以我還是會看完Nehe的教程。 現在這是一個新的教程 - JoeyDeVries的教程&#xff0c;可以說是網上最好的OpenGL教程…

Python全棧開發:socket

Socket socket通常也稱作"套接字"&#xff0c;用于描述IP地址和端口&#xff0c;是一個通信鏈的句柄&#xff0c;應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。 socket起源于Unix&#xff0c;而Unix/Linux基本哲學之一就是“一切皆文件”&…

oracle sga pga mysql_修改Oracle數據庫SGA和PGA大小

SGA的大小&#xff1a;一般物理內存20%用作操作系統保留&#xff0c;其他80%用于數據庫。SGA普通數據庫可以分配40%-60%之間&#xff0c;PGA可以分配20%-40%之間。1、以dba身份登錄并查看SGA信息&#xff1a;SQL>show parameter sga&#xff1b;查看PGA信息&#xff1a;SQL&…

NetBeans 7.1:創建自定義提示

我已經在帖子中介紹了一些我最喜歡的NetBeans提示 &#xff0c;這些信息是用于使Java代碼現代化的七個NetBeans提示和七個不可或缺的NetBeans Java提示 。 這兩個帖子中涉及的十四個提示僅占NetBeans支持的“即開即用”提示總數的一小部分。 但是&#xff0c;由于NetBeans 7.1使…

今年暑假不AC

Problem Description “今年暑假不AC&#xff1f;”“是的。”“那你干什么呢&#xff1f;”“看世界杯呀&#xff0c;笨蛋&#xff01;”“#$%^&*%...”確實如此&#xff0c;世界杯來了&#xff0c;球迷的節日也來了&#xff0c;估計很多ACMer也會拋開電腦&#xff0c;奔向…