??
LED數(shù)字時鐘我們常見,以前一直以為數(shù)字時鐘的數(shù)字都是通過繪畫出來的,最近項目需要用到時,有網(wǎng)上查找學(xué)習(xí)了。才知道,原來很簡單~~先上張圖看看效果~~
原理說白了,就是通過兩個TextView和一種字體格式就能顯示。其中,一個TextView用于顯示默認背景模糊數(shù)字,另一個TextView當(dāng)然是顯示需要的數(shù)值。而顯示的數(shù)字就要用到字體工具設(shè)定字體格式。說再多不如操作實現(xiàn)來的實在。
1。添加字體
1)取得字體digital-7工具包,可以到下面鏈接下載:
2)把上面的字體添加到項目的 assets/fonts/路徑下面
2。自定義LED數(shù)字的LEDView
1)先定義LEDView的布局文件:
上面的布局文件led數(shù)字顯示,第一個TextView的顏色設(shè)定為:
android:textColor="#66C0C0C0"
這個八位的顏色要注意,前兩位表示透明度,后六位才表示RGB顏色。就是因為設(shè)置了透明度所以才有背景數(shù)字的效果。
2)實現(xiàn)自定義LEDView類,代碼非常簡單led數(shù)字顯示,一看就明白,只是做了簡單的封裝,不是很好。個人可以根據(jù)自己需要封裝.
package com.mobisummer.msgps;
import java.io.File;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
public class LEDView extends LinearLayout {
private static final String FONT_DIGITAL_7 = "fonts" + File.separator
+ "digital-7.ttf";
private TextView ledNumber;
private TextView ledBg;
public LEDView(Context context) {
this(context, null);
}
public LEDView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public LEDView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
View view = layoutInflater.inflate(R.layout.ledview, this);
ledNumber = (TextView) view.findViewById(R.id.ledview_number);
ledBg = (TextView) view.findViewById(R.id.ledview_bg);
AssetManager assets = context.getAssets();
final Typeface font = Typeface.createFromAsset(assets, FONT_DIGITAL_7);
ledNumber.setTypeface(font);// 設(shè)置字體樣式
ledBg.setTypeface(font);// 設(shè)置字體樣式
}
/**
* 顯示電子數(shù)字
* @param size 字體大小
* @param bg 背景數(shù)字顯示樣式,即背景數(shù)字
* @param number 需要顯示的數(shù)字樣式
*/
public void setLedView(int size, String bg, String number) {
ledBg.setTextSize(size);
ledNumber.setTextSize(size);
ledBg.setText(bg);
ledNumber.setText(number);
}
}
3。引用上面自定義的LEDView
1)在需要顯示的Activity的xml文件中添加LEDView
2)代碼中傳入相應(yīng)的參數(shù)實現(xiàn)LEDView的顯示。
mTime = (LEDView) view.findViewById(R.id.nb_time);
mTime.setLedView(80, getString(R.string.default_bg_time), time);
好了,晚了,睡去~~
文章由啟和科技編輯
上一篇:led顯示屏字幕設(shè)置