led数字显示 Android实现LED数字显示



LED数字时钟我们常见,以前一直以为数字时钟的数字都是通过绘画出来的,最近项目需要用到时,有网上查找学习了。才知道,原来很简单~~先上张图看看效果~~

原理说白了,就是通过两个TextView和一种字体格式就能显示。其中,一个TextView用于显示默认背景模糊数字,另一个TextView当然是显示需要的数值。而显示的数字就要用到字体工具设定字体格式。说再多不如操作实现来的实在。

1。添加字体

1)取得字体digital-7工具包,可以到下面链接下载:

2)把上面的字体添加到项目的 assets/fonts/路径下面

2。自定义LED数字的LEDView

1)先定义LEDView的布局文件:



    
    

上面的布局文件led数字显示,第一个TextView的颜色设定为:

android:textColor="#66C0C0C0"

这个八位的颜色要注意,前两位表示透明度,后六位才表示RGB颜色。就是因为设置了透明度所以才有背景数字的效果。

2)实现自定义LEDView类,代码非常简单led数字显示,一看就明白,只是做了简单的封装,不是很好。个人可以根据自己需要封装.

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);// 设置字体样式
		ledBg.setTypeface(font);// 设置字体样式
	}
	
	/**
	 * 显示电子数字
	 * @param size 字体大小
	 * @param bg 背景数字显示样式,即背景数字
	 * @param number 需要显示的数字样式
	 */
	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)代码中传入相应的参数实现LEDView的显示。

mTime = (LEDView) view.findViewById(R.id.nb_time);
mTime.setLedView(80, getString(R.string.default_bg_time), time);

好了,晚了,睡去~~

文章由启和科技编辑


上一篇:led显示屏字幕设置

下一篇:led显示屏字幕 led显示屏怎么改字幕

TAG标签: LED显示屏