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.mzph.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;奔向…