把一个界面做成类似于LED灯一样的效果,需要定义一个类,加载特殊字体。为了实现发光效果,需要实现TextView类中的public void setShadowLayer (float radius, float dx, float dy, int color),也可以通过 XML 中的 android:shadowColor, android:shadowDx、
android:shadowDy 和 android:shadowRadius 属 性 使 用 这 种 效 果。修改 android:shadowDx 和 android:shadowDy 属性的值可以改
变阴影与文本之间的偏移。指定 android:shadowRadius 属性可以让
用户产生一种文本更亮的错觉

android 开发技巧(9)--为文本添加发亮的效果_第1张图片

先将digital-7.ttf字体放在assets下的fonts文件夹下,自定义一个LedTextView继承自TextView

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";  public LedTextView(Context context) {    super(context);    init(context);  }  public LedTextView(Context context, AttributeSet attrs) {    super(context, attrs);    init(context);  }  public LedTextView(Context context, AttributeSet attrs, int defStyle) {    super(context, attrs, defStyle);    init(context);  }  private void init(Context context) {    AssetManager assets = context.getAssets();    final Typeface font = Typeface.createFromAsset(assets,        FONT_DIGITAL_7);    setTypeface(font);  }}
public class Hack11Activity extends Activity {    private static final String DATE_FORMAT = "%02d:%02d:%02d";    private static final int REFRESH_DELAY = 500;    private final Handler mHandler = new Handler();    private final Runnable mTimeRefresher = new Runnable() {        @Override        public void run() {            final Date d = new Date();            mTextView.setText(String.format(DATE_FORMAT, d.getHours(),                    d.getMinutes(), d.getSeconds()));            mHandler.postDelayed(this, REFRESH_DELAY);        }    };    private TextView mTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_hack11);        mTextView = (TextView) findViewById(R.id.main_clock_time);    }    @Override    protected void onResume() {        super.onResume();        mHandler.post(mTimeRefresher);    }    @Override    protected void onStop() {        super.onStop();        mHandler.removeCallbacks(mTimeRefresher);    }}

activity_hack11.xml

<?xml version="1.0" encoding="utf-8"?><merge xmlns:android="http://schemas.android.com/apk/res/android" >    <boerpower.com.android50hacks.view.LedTextView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/default_time" android:textColor="#3300ff00" android:textSize="80sp" />    <boerpower.com.android50hacks.view.LedTextView  android:id="@+id/main_clock_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:shadowColor="#00ff00" android:shadowDx="0" android:shadowDy="0" android:shadowRadius="10" android:textColor="#00ff00" android:textSize="80sp" /></merge>
<string name="default_time">88:88:88</string>

字体下载

更多相关文章

  1. Android如何让TextView子元素随着父元素的背景变化而改变字体颜
  2. Android学习笔记(2)---android字体风格设置
  3. 【Android 界面效果39】android:inputType问题
  4. Android利用TextView制作跑马灯该效果
  5. 安卓开发小效果--走马灯
  6. Android等宽字体
  7. Android 使用shape来优化界面效果
  8. android切换效果、Flutter信息类App、仿饿了么点餐、仿爱壁纸应
  9. Android设置android:clipChildren达到的特殊UI设计效果

随机推荐

  1. 【移动开发】Android相机、相册获取图片
  2. [笔记]如何解决Your project contains C+
  3. Android动画之三:Property Animation(上)
  4. Android进阶(二)https请求No peer certif
  5. Android实现音乐播放 Music 详解
  6. Android(安卓)判断、创建和删除快捷方式
  7. android之JSON解析(二)
  8. Ubuntu13.04环境下载、编译Android源代码
  9. node.js+android(使用HttpURLConnection
  10. Android(安卓)Activty使用示例【慢慢更新