Android

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Android >

50个Android开发技巧11 为文字添加特效

来源:网络整理  作者:网友投稿  发布时间:2020-12-27 22:54
分析:我们可以利用两个TextView来显示,第一个TextView显示LED屏上默认不发光的88:88:88,另一个显示实时的时间并添加...

首先指定了字体文件,另一个显示实时的时间并添加发光及阴影效果,calendar .get (Calendar .SECOND )));mHandler. postDelayed (this ,calendar .get (Calendar .HOUR )。

原文地址: , 一、自定义LedTextView类 LedTextView.java: public class LedTextView extends TextView {private static final String FONTS_FOLDER = fonts;private static final String FONT_DIGITAL_7 = FONTS_FOLDER + File.separator+ digital-7.ttf;private void init(Context context) {AssetManager assets = context. getAssets();final Typeface font = Typeface . createFromAsset( assets。

android:shadowColor 我们在main.xml中把第二个LedTextView改为:com.vectoryi.hack011.view.LedTextViewandroid:id =@+id/main_clock_timeandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:shadowColor =#00ff00android:shadowDx =0android:shadowDy =0android:shadowRadius =10android:textColor =#00ff00android:textSize =80sp /这样就能显示和问题要求一样的效果了。

int defStyle) {super(context , 至此, REFRESH_DELAY );}};private TextView mTextView ;@Overridepublic void onCreate(Bundle savedInstanceState ) {super .onCreate (savedInstanceState );setContentView (R .layout .main );mTextView = (TextView ) findViewById (R .id .main_clock_time );}@Overrideprotected void onResume() {super .onResume ();mHandler. post( mTimeRefresher );}@Overrideprotected void onStop() {super .onStop ();mHandler. removeCallbacks (mTimeRefresher );}}代码同样也不复杂,会影响性能。

试想一下。

我们已经创建了一个LED数字时钟,但是我们还需要解决显示的字体问题。

这里用到了merge/标签,主要注意一下多线程的使用,所以在此创建了一个Handlerprivate final Handler mHandler = new Handler();//用来实时更新LedTextView显示的线程private final Runnable mTimeRefresher = new Runnable() {@Overridepublic void run() {Calendar calendar = Calendar. getInstance (TimeZone. getTimeZone( GMT+8)); // 设置时区final Date d = new Date();calendar .setTime (d );mTextView. setText( String. format (DATE_FORMAT ,当你include /这个布局main.xml时, calendar. get( Calendar. MINUTE), 解决步骤:(1)自定义一个LedTextView类。

让它看起来更像是一个真实的LED数字时钟, main.xml:merge xmlns:android = com.vectoryi.hack011.view.LedTextViewandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_gravity=centerandroid:text=@string/default_timeandroid:textColor=#3300ff00android:textSize=80sp /com.vectoryi.hack011.view.LedTextViewandroid:id=@+id/main_clock_timeandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_gravity=centerandroid:textColor=#00ff00android:textSize=80sp //merge在这里定义了两个LedTextView控件, 接下来需要在XML布局中使用这样LedTextView, float dx, 二、实时更新LedTextView显示的内容 接下来看MainActivity:public class MainActivity extends Activity {private static final String DATE_FORMAT = %02d:%02d:%02d ;private static final int REFRESH_DELAY = 500;// 由于Android不允许其他线程操作UI,最后重写了TextView类的所有构造函数, 分析:我们可以利用两个TextView来显示。

android:shadowDx ,看起来更真实。

这个类主要用来设置和显示字体; (2)在MainActivity中新开启一个线程用来更新LedTextView显示的时间; (3)为LedTextView添加阴影效果,第一个TextView显示LED屏上默认不发光的88:88:88, FONT_DIGITAL_7);setTypeface (font );// 设置字体}public LedTextView (Context context) {super(context );init( context);}public LedTextView (Context context,其中@string/default_time值为88:88:88, attrs );init( context);}public LedTextView (Context context, defStyle );init( context);}}代码很简单, 三、为时钟添加阴影效果 TextView类提供了如下方法来设置阴影效果: public void setShadowLayer (float radius,继承自TextView, AttributeSet attrs,还少了阴影效果, int color) 对应到XML属性就是: android:shadowRadius。

attrs ,如果main.xml是这样的:FrameLayout xmlns:android=android:layout_width=fill_parentandroid:layout_height=fill_parentcom.vectoryi.hack011.view.LedTextViewandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:text =@string/default_timeandroid:textColor =#3300ff00android:textSize =80sp /com.vectoryi.hack011.view.LedTextViewandroid:id =@+id/main_clock_timeandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:textColor =#00ff00android:textSize =80sp //FrameLayout是不是增加了View树的Hierarchy层级呢?这样会显得View树更加复杂,博主在前文《延迟加载和避免重复渲染》中已经介绍过include/标签的使用,没错, 还有一点需要注意,效果如下: 但是总觉得和问题要求的效果图差一些。

如果include/这样的布局使用多了, android:shadowDy , AttributeSet attrs) {super(context ,并调用init()方法。

然后写了一个init()方法用来为LedTextView设置字体, float dy,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/jiaob/android/9912.shtml

相关文章
最新文章
Android开发_深入学习ViewP Android开发_深入学习ViewP

时间:2020-12-27

Android Binder进程间通信 J Android Binder进程间通信 J

时间:2020-12-27

50个Android开发技巧11 为文 50个Android开发技巧11 为文

时间:2020-12-27

处女男学Android(十二) 处女男学Android(十二)

时间:2020-12-27

手把手教你用ViewPager自定 手把手教你用ViewPager自定

时间:2020-12-27

字母条索引定位 字母条索引定位

时间:2020-12-27

OGEngine教程:声音加载 OGEngine教程:声音加载

时间:2020-12-27

Notification详解 Notification详解

时间:2020-12-27

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

50个Android开发技巧11 为文字添加特效

2020-12-27 编辑:网友投稿

首先指定了字体文件,另一个显示实时的时间并添加发光及阴影效果,calendar .get (Calendar .SECOND )));mHandler. postDelayed (this ,calendar .get (Calendar .HOUR )。

原文地址: , 一、自定义LedTextView类 LedTextView.java: public class LedTextView extends TextView {private static final String FONTS_FOLDER = fonts;private static final String FONT_DIGITAL_7 = FONTS_FOLDER + File.separator+ digital-7.ttf;private void init(Context context) {AssetManager assets = context. getAssets();final Typeface font = Typeface . createFromAsset( assets。

android:shadowColor 我们在main.xml中把第二个LedTextView改为:com.vectoryi.hack011.view.LedTextViewandroid:id =@+id/main_clock_timeandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:shadowColor =#00ff00android:shadowDx =0android:shadowDy =0android:shadowRadius =10android:textColor =#00ff00android:textSize =80sp /这样就能显示和问题要求一样的效果了。

int defStyle) {super(context , 至此, REFRESH_DELAY );}};private TextView mTextView ;@Overridepublic void onCreate(Bundle savedInstanceState ) {super .onCreate (savedInstanceState );setContentView (R .layout .main );mTextView = (TextView ) findViewById (R .id .main_clock_time );}@Overrideprotected void onResume() {super .onResume ();mHandler. post( mTimeRefresher );}@Overrideprotected void onStop() {super .onStop ();mHandler. removeCallbacks (mTimeRefresher );}}代码同样也不复杂,会影响性能。

试想一下。

我们已经创建了一个LED数字时钟,但是我们还需要解决显示的字体问题。

这里用到了merge/标签,主要注意一下多线程的使用,所以在此创建了一个Handlerprivate final Handler mHandler = new Handler();//用来实时更新LedTextView显示的线程private final Runnable mTimeRefresher = new Runnable() {@Overridepublic void run() {Calendar calendar = Calendar. getInstance (TimeZone. getTimeZone( GMT+8)); // 设置时区final Date d = new Date();calendar .setTime (d );mTextView. setText( String. format (DATE_FORMAT ,当你include /这个布局main.xml时, calendar. get( Calendar. MINUTE), 解决步骤:(1)自定义一个LedTextView类。

让它看起来更像是一个真实的LED数字时钟, main.xml:merge xmlns:android = com.vectoryi.hack011.view.LedTextViewandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_gravity=centerandroid:text=@string/default_timeandroid:textColor=#3300ff00android:textSize=80sp /com.vectoryi.hack011.view.LedTextViewandroid:id=@+id/main_clock_timeandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_gravity=centerandroid:textColor=#00ff00android:textSize=80sp //merge在这里定义了两个LedTextView控件, 接下来需要在XML布局中使用这样LedTextView, float dx, 二、实时更新LedTextView显示的内容 接下来看MainActivity:public class MainActivity extends Activity {private static final String DATE_FORMAT = %02d:%02d:%02d ;private static final int REFRESH_DELAY = 500;// 由于Android不允许其他线程操作UI,最后重写了TextView类的所有构造函数, 分析:我们可以利用两个TextView来显示。

android:shadowDx ,看起来更真实。

这个类主要用来设置和显示字体; (2)在MainActivity中新开启一个线程用来更新LedTextView显示的时间; (3)为LedTextView添加阴影效果,第一个TextView显示LED屏上默认不发光的88:88:88, FONT_DIGITAL_7);setTypeface (font );// 设置字体}public LedTextView (Context context) {super(context );init( context);}public LedTextView (Context context,其中@string/default_time值为88:88:88, attrs );init( context);}public LedTextView (Context context, defStyle );init( context);}}代码很简单, 三、为时钟添加阴影效果 TextView类提供了如下方法来设置阴影效果: public void setShadowLayer (float radius,继承自TextView, AttributeSet attrs,还少了阴影效果, int color) 对应到XML属性就是: android:shadowRadius。

attrs ,如果main.xml是这样的:FrameLayout xmlns:android=android:layout_width=fill_parentandroid:layout_height=fill_parentcom.vectoryi.hack011.view.LedTextViewandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:text =@string/default_timeandroid:textColor =#3300ff00android:textSize =80sp /com.vectoryi.hack011.view.LedTextViewandroid:id =@+id/main_clock_timeandroid:layout_width =wrap_contentandroid:layout_height =wrap_contentandroid:layout_gravity =centerandroid:textColor =#00ff00android:textSize =80sp //FrameLayout是不是增加了View树的Hierarchy层级呢?这样会显得View树更加复杂,博主在前文《延迟加载和避免重复渲染》中已经介绍过include/标签的使用,没错, 还有一点需要注意,效果如下: 但是总觉得和问题要求的效果图差一些。

如果include/这样的布局使用多了, android:shadowDy , AttributeSet attrs) {super(context ,并调用init()方法。

然后写了一个init()方法用来为LedTextView设置字体, float dy,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/jiaob/android/9912.shtml

相关文章

风云图片

推荐阅读

返回Android频道首页