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.TitanicTextView
    android: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;

    @Override
    protected 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();
    }
}

友情链接

时间: 2024-10-11 08:44:05

android框架---->下沉文字Titanic的使用的相关文章

在Kotlin中使用注释处理Android框架 kapt

本教程介绍如何在 Kotlin 中使用依赖于注释处理的流行的 Android 框架和库. 在日常 Android 开发中,流行着数以千计的框架帮助我们提升开发效率. 使用 Kotlin 开发时仍然可以沿用这些框架,而且和使用 Java 同样简单. 本章教程将提供相关示例并重点介绍配置的差异. 教程以 Dagger. Butterknife. Data Binding. Auto-parcel 以及 DBFlow 为例(其它框架配置基本类似). 以上框架均基于注解处理方式工作:通过对代码注解自动生

App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南

面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components ).为开发者更好的开发 App 提供了非常好的样本.这个框架里的组件是配合 Android 组件生命周期的,所以它能够很好的规避组件生命周期管理的问题.今天我们就来看看这个库的使用. 通用的框架准则 官方建议在架构 App 的时候遵循以下两个准则: 关注分离 其中早期开发 App 最常见的做法是在 Activity 或者 Fragment 中写了大量

Android TextView 实现文字大小不同和文字颜色不同

效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\"1\">"); sb.append(""+day); sb.append("</a>"); sb.append(""+Global.getString(R.string.unit_Day2)); } sb

Android框架设计模式(四)——Adapter Method

一适配器模式介绍 什么是适配器模式 定义 分类 适配器应用于什么场景 二Android框架中的适配器模式应用 ListViewBaseAdapter自定义View 通俗UML图 关键代码分析 ActivityBinderMediaPlayer 通俗UML图 关键代码分析 三适配器模式与其他模式的配合 适配器观察者模板策略组合 BaseAdapterListView自定义View 整体UML图 模式分析不同的视角决定 适配器观察者模板 Service Activity 自定义服务 整体UML图 模

更改android actionbar tab文字颜色

1 在res/values/colors.xml <color name="text_tab_selected">#000000</color> <color name="text_tab_unselected">#886C2A</color> 2 /res/color 定义文件 tab.xml <?xml version="1.0" encoding="utf-8"?&g

IOS 与ANDROID框架及应用开发模式对比一

IOS 和ANDROID操作系统都是目前流行的移动操作系统,被移动终端和智能设备大量采用,两者都采用了先进的软件技术进行设计,为了方便应用开发两者都采用了先进的设计模式.两者在框架设计上都采用了什么技术?都采用了什么设计模式?两者设计思路和应用开发模式有什么异同呢? 两者都采用了框架模式. IOS 的框架称为Cocoa Touch. 框架提供两个作用,一是类的集合,每个类构建一个问题空间,并提供完整的解决方案和服务:二更重要的是框架中的类相互依赖构成一个整体,制订并实现整个应用程序的结构.框架定

IOS 与ANDROID框架及应用开发模式对照一

IOS 和ANDROID操作系统都是眼下流行的移动操作系统,被移动终端和智能设备大量採用,两者都採用了先进的软件技术进行设计,为了方便应用开发两者都採用了先进的设计模式. 两者在框架设计上都採用了什么技术?都採用了什么设计模式?两者设计思路和应用开发模式有什么异同呢? 两者都採用了框架模式. IOS 的框架称为Cocoa Touch. 框架提供两个作用,一是类的集合,每一个类构建一个问题空间,并提供完整的解决方式和服务.二更重要的是框架中的类相互依赖构成一个总体,制订并实现整个应用程序的结构.框

一个实用的android框架(一)——架构

原文出处:http://saulmm.github.io/2015/02/02/A%20useful%20stack%20on%20android%20%231,%20architecture/ 原码github地址:https://github.com/saulmm/Material-Movies 作者:Saúl Molinero 译者注:这是最近接触到的一个关于安卓架构的项目,也是基于MVP的,分包上的想法和我比较契合.另外,该项目也是使用了Material Design,感觉比较新颖实用.

【Android - 框架】之Retrofit+RxJava的使用

前几天分别对Retrofit和RxJava进行了总结,这个帖子打算把Retrofit结合RxJava使用的方法总结以下.有还不了解Retrofit或RxJava的朋友可以参考下面的帖子学习~ [Android - 框架]之Retrofit的使用 [Android - 框架]之RxJava的使用 首先导入依赖: dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.andro