- 浏览: 538155 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
landerson:
明显就有要求的嘛
ANDROID轻量级JSON序列化和反序列化[转] -
jimode2013:
很不错,就是需要这个方法
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转] -
w11h22j33:
...
[转]NSMutableArray中的自动释放对象让我郁闷了一整天 -
w11h22j33:
UILabel* label = [[UILabel a ...
Iphone开发 -
w11h22j33:
http://mobile.51cto.com/iphone- ...
获得通讯录中联系人的所有属性[转]
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.TextView;
/**
*
* TODO 单行文本跑马灯控件
*
* @author tianlu
* @version 1.0
* Create At : 2010-2-16 下午09:35:03
*/
public class AutoScrollTextView extends TextView implements OnClickListener {
public final static String TAG = AutoScrollTextView.class.getSimpleName();
private float textLength = 0f;//文本长度
private float viewWidth = 0f;
private float step = 0f;//文字的横坐标
private float y = 0f;//文字的纵坐标
private float temp_view_plus_text_length = 0.0f;//用于计算的临时变量
private float temp_view_plus_two_text_length = 0.0f;//用于计算的临时变量
public boolean isStarting = false;//是否开始滚动
private Paint paint = null;//绘图样式
private String text = "";//文本内容
public AutoScrollTextView(Context context) {
super(context);
initView();
}
public AutoScrollTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initView();
}
public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView();
}
/**
* 初始化控件
*/
private void initView()
{
setOnClickListener(this);
}
/**
* 文本初始化,每次更改文本内容或者文本效果等之后都需要重新初始化一下
*/
public void init(WindowManager windowManager)
{
paint = getPaint();
text = getText().toString();
textLength = paint.measureText(text);
viewWidth = getWidth();
if(viewWidth == 0)
{
if(windowManager != null)
{
Display display = windowManager.getDefaultDisplay();
viewWidth = display.getWidth();
}
}
step = textLength;
temp_view_plus_text_length = viewWidth + textLength;
temp_view_plus_two_text_length = viewWidth + textLength * 2;
y = getTextSize() + getPaddingTop();
}
@Override
public Parcelable onSaveInstanceState()
{
Parcelable superState = super.onSaveInstanceState();
SavedState ss = new SavedState(superState);
ss.step = step;
ss.isStarting = isStarting;
return ss;
}
@Override
public void onRestoreInstanceState(Parcelable state)
{
if (!(state instanceof SavedState)) {
super.onRestoreInstanceState(state);
return;
}
SavedState ss = (SavedState)state;
super.onRestoreInstanceState(ss.getSuperState());
step = ss.step;
isStarting = ss.isStarting;
}
public static class SavedState extends BaseSavedState {
public boolean isStarting = false;
public float step = 0.0f;
SavedState(Parcelable superState) {
super(superState);
}
@Override
public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags);
out.writeBooleanArray(new boolean[]{isStarting});
out.writeFloat(step);
}
public static final Parcelable.Creator<SavedState> CREATOR
= new Parcelable.Creator<SavedState>() {
public SavedState[] newArray(int size) {
return new SavedState[size];
}
@Override
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);
}
};
private SavedState(Parcel in) {
super(in);
boolean[] b = null;
in.readBooleanArray(b);
if(b != null && b.length > 0)
isStarting = b[0];
step = in.readFloat();
}
}
/**
* 开始滚动
*/
public void startScroll()
{
isStarting = true;
invalidate();
}
/**
* 停止滚动
*/
public void stopScroll()
{
isStarting = false;
invalidate();
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawText(text, temp_view_plus_text_length - step, y, paint);
if(!isStarting)
{
return;
}
step += 0.5;
if(step > temp_view_plus_two_text_length)
step = textLength;
invalidate();
}
@Override
public void onClick(View v) {
if(isStarting)
stopScroll();
else
startScroll();
}
}
实现了宽度的判断,文本自动滚动及开始和停止滚动等功能。
在UI xml中的配置如下:
android:layout_height="30px" android:layout_width="fill_parent"
android:text="@string/test_notice_1" android:textColor="#000" android:inputType="text"
android:background="#EEE" android:textSize="20px"></cn.tigertian.ui.AutoScrollTextView>
在Activity中的使用方法如下:
autoScrollTextView = (AutoScrollTextView)findViewById(R.id.TextViewNotice);
autoScrollTextView.init(getWindowManager());
autoScrollTextView.startScroll();
发表评论
-
干掉你程序中的僵尸代码【转】
2012-12-22 11:05 967随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个 ... -
一个文本框搞定信用卡相关信息的输入[转]
2012-12-22 11:03 1141http://beforweb.com/node/134 ... -
android 开源 OCR 项目 及手写识别[转]
2012-12-11 18:21 57721)一个为Android平台,将识别由手机的相机拍摄的图 ... -
Android通过共享用户ID来实现多Activity进程共享【转】
2012-12-10 14:33 1111http://mypyg.iteye.com/blog/720 ... -
Android应用程序组件Content Provider的启动过程源代码分析【转】
2012-12-05 18:31 1149通过前面的学习,我们知道在Android系统中,Cont ... -
理解android上的安全性【转】
2012-12-03 18:08 919开发 Android 应用程序时,必须处理很多与安全性相关的方 ... -
Android 安全机制概述 Permission【转】
2012-12-03 18:07 11761 Android 安全机制概述 Android 是一个权限分 ... -
Android学习笔记之一谁动了我的接口附checkPermission流程(Dean)[转]
2012-12-03 18:06 18128前段时间接到一个有趣的需求!我们实现的某某功能的手机对外提供了 ... -
(JAVA) 使用异或进行简单的密码加密(JAVA实现)[转]
2012-11-12 16:44 1220http://blog.sina.com.cn/s/bl ... -
SL4A 之实现原理解析【转】
2012-10-23 23:52 1286关于SL4A的简介和在Android系统的安装及使用,请参 ... -
百度地图API之根据经纬度查询地址信息(Android)[转]
2012-06-16 00:15 19804http://blog.csdn.net/lyq8479/ar ... -
百度地图的手动定位和自动定位[转]
2012-06-15 23:24 3460http://aokunsang.iteye.com/b ... -
如何编程实现开启或关闭GPS?
2012-06-09 22:14 1134来自 手机应用中最酷的可能就是位置服务相关的了, ... -
Android软键盘的隐藏显示研究[转]
2012-05-25 16:30 1445Android是一个针对触摸屏专门设计的操作系统,当点 ... -
15 个变量和方法命名的最佳实践[转]
2012-02-27 11:44 103215 个变量和方法命名的最佳实践 在每个代码范围内使用足够短 ... -
iPhone Android Web开发(概要)
2012-01-19 15:15 1072一、 前端使用技术 JavaScript、 jQuer ... -
移动 电信 联通 APN cmwap cmnet ctwap ctnet 3gwap uniwap 3gnet uninet设置[转]
2011-11-23 14:35 2781APN(Access Point Name),即“接入 ... -
Android Http CMWAP联网获取实例【转】
2011-10-24 13:24 1404上午的时候原本想通过改变切入点的方式来实现cmwap,但是我们 ... -
监听ListView滚动到最底部【转】
2011-09-13 10:27 5885监听ListView的滚动可以用两个东西: ListV ... -
Android蓝牙开发浅谈【转】
2011-09-07 14:20 1576转自:http://www.eoeandroid.co ...
相关推荐
总之,实现Android文字跑马灯控件涉及到TextView的属性设置、自定义View、动画系统以及事件处理等多个方面。开发者需要对Android的UI编程有扎实的理解,并且具备一定的调试技巧,才能根据提供的资源进行有效的学习和...
在Android开发中,"文字跑马灯效果"是一种常见的用户界面设计,主要用于显示较长的文本内容,当空间有限时,可以实现文本的自动循环滚动,给人一种动态的效果,类似传统电子显示屏上的跑马灯。这种效果通常用在通知...
标题提到的"android跑马灯效果,失去焦点也可以实现"意味着即使控件没有获取到焦点,仍然可以保持滚动效果。这在设计用户界面时特别有用,因为有时候我们希望信息能够持续吸引用户的注意力,而不仅仅是当用户交互时...
"TextView跑马灯" 是指在TextView中实现滚动文字的效果,类似于传统电子显示屏中的跑马灯效果,使得过长的文字能够在有限的空间内循环滚动显示。这种效果在通知栏提示、广告展示或者界面空间有限的情况下特别有用。 ...
Android 文字跑马灯文字水平自动滚动控件及效果演示,文字左右移动特效,文字滚动速度可调、文本颜色也可以自定义,可以用手触屏来控制是否停止文字滚动,控制点击停止或者继续运行,在开始滚动前,对文字样式做以下...
Android文字轮播控件 现在的绝大数APP特别是类似淘宝京东等这些大型APP都有文字轮播界面,实现循环轮播多个广告词等功能;这种控件俗称“跑马灯”,而TextBannerView已经实现了可垂直跑、可水平跑的跑马灯了。 效果...
"android自定义横向跑马灯TextView"就是一个典型的示例,它允许文字在一个视图内不断滚动,模拟LED显示屏上的跑马灯效果。这种效果通常用于显示通知、提示信息或者标题,即使只有一个字符也能实现滚动。 跑马灯效果...
在Android开发中,实现文字跑马灯效果是一种常见的动态UI设计,可以吸引用户注意力并提供信息展示。本示例——"Android 实现水平、垂直方向文字跑马灯效果demo",将详细介绍如何在Android应用中创建这样的效果。跑马...
"跑马灯"效果,又称为滚动文字效果,是指当TextView中的文本长度超过控件宽度时,文本会从右向左自动循环滚动,就像跑马灯一样。这个效果在很多场景下都非常实用,比如通知栏消息、应用标题或者广告横幅等。 实现...
在Android开发中,跑马灯效果通常是指TextView的滚动效果,这种效果常见于电视广告、信息提示等场景,能够在一个固定的空间内展示超出长度的文字。本文将深入探讨如何在Android应用中实现跑马灯效果,并结合提供的...
在Android开发中,有时我们需要创建一种特殊的文本显示效果,即文本自动滚动,也常被称为“跑马灯”效果。这种效果通常用于展示长文本,在有限的屏幕空间内循环滚动显示,常见于应用通知、广告栏或者标题栏。本文将...
总结来说,这个"带动画可选中的单行文本跑马灯控件"是一个结合了Android属性动画和自定义视图技术的组件,它允许开发者创建具有独特跑马灯效果的文本展示,同时还能实现部分文本的高亮显示。通过深入研究其源码,...
在Android开发中,"android listview跑马灯"是指在ListView控件中实现类似滚动广告或文字滚动的效果,通常称为跑马灯效果。这种效果可以让列表中的内容持续滚动,增加视觉吸引力,常用于展示新闻标题、广告轮播或...
本示例着重讲解如何实现一个竖直跑马灯(Vertical Marquee)效果,这种效果常见于滚动显示文字或信息的场景,如公告栏、广告栏等。 首先,我们了解跑马灯的基本原理。跑马灯是通过不断地移动文字的位置来模拟滚动...
在Android中,实现文字跑马灯效果通常涉及到对TextView的重写或者使用Animation类。开发者需要创建一个继承自TextView的自定义View,并在其内部实现滚动逻辑。这可能包括设置文本的偏移量、控制滚动速度以及处理边界...
在Android开发中,有时我们需要实现类似跑马灯的效果,即文字自动滚动显示。标题提到的“Android-自定义跑马灯MarqueeView”是针对这一需求的解决方案。默认的Android SDK提供了一个叫做`TextView`的控件,它具有...
在Android开发中,跑马灯效果通常指的是文字或图片在界面上不断滚动,形成一种循环显示的效果,类似于现实生活中霓虹灯的动态显示。这种效果常用于通知、提示或者广告栏等场景。在这个项目中,我们将探讨如何实现...
【跑马灯效果】在Android开发中,通常指的是TextView中的滚动文字效果,也称为Marquee效果,这种效果会让过长的文字在控件宽度内不断滚动,就像跑马灯一样。在老罗的视频中,他可能讲解了如何通过代码实现这一效果。...
Android自定义跑马灯文字效果是指在Android平台上实现跑马灯文字效果的技术,通过自定义TextView控件,实现文字的水平滚动动画,达到跑马灯文字效果。 1. 自定义TextView控件 首先,我们需要自定义一个TextView...
只需粘贴run_led.java 并进行一些基本的设置即可 值得注意的是 使用该控件的时候,这句需要根据自己的路径来更改,初学者留一下,不然会崩的。