如题,简单的实现了跑马灯效果,把Scroll.java放入android.view包下,XML使用如下:
<?xml version="1.0" encoding="utf-8"?>
<Scroll xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dip"
android:layout_height="wrap_content">
<!--注意:Scroll里的布局或者控件元素只能有一个可以用布局嵌套布局/控件来使用,当Scroll里的唯一元素的宽度超过Scroll效果最好,如果不超过没加处理,有兴趣可以自己加上-->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="放大镜流口水附近拉神经分裂卡上的经费里卡迪神经分裂空间爱上" />
</Scroll>
代码如下:
----------------------------------------------转载请注明出处-----------------------------------------------
本帖隐藏的内容需要回复才可以浏览
public class Scroll extends HorizontalScrollView implements Runnable
{
private View inner;
private Bitmap bitmap = null;
/**
* 滚动步长
*/
private int step = 5;
private int x;
private int width;
private int pWidth;
private int pHeight;
/**
* 滚动间隔距离
*/
private int space = 10;
public Scroll(Context context, AttributeSet attrs)
{
super(context, attrs);
setBackgroundColor(android.R.color.transparent);
}
@Override
protected void onFinishInflate()
{
if (getChildCount() == 1)
{
inner = getChildAt(0);
}
}
@Override
protected void onDetachedFromWindow()
{
super.onDetachedFromWindow();
handler.removeCallbacks(this);
}
@Override
protected void onDraw(Canvas canvas)
{
if (getWidth() == 0)
{
android.view.ViewGroup.LayoutParams lp = getLayoutParams();
lp.width = pWidth;
lp.height = pHeight;
setLayoutParams(lp);
}
if (bitmap == null && inner != null)
{
width = inner.getMeasuredWidth();
bitmap = Bitmap.createBitmap(width, inner.getHeight(), Config.RGB_565);
Canvas canvas1 = new Canvas(bitmap);
inner.draw(canvas1);
pWidth = getWidth();
pHeight = getHeight();
if (inner != null)
{
removeViewInLayout(inner);
inner = null;
}
run();
}
if (bitmap != null)
{
int nowX = x;
nowX -= step;
canvas.drawBitmap(bitmap, nowX, 0, null);
if (nowX < 0)
{
canvas.drawBitmap(bitmap, width + nowX + space, 0, null);
}
if (nowX <= -width)
{
nowX = 0;
}
x = nowX;
}
super.onDraw(canvas);
}
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
}
};
@Override
public void run()
{
invalidate();
handler.postDelayed(this, 500);
}
}
----------------------------------转载请注明出处-----------------------------------------------
另外提供了一个可以直接跑的附件,不过附件里的只是一个TextView,大家可以把它换上LinearLayout里加上n个TextView看看,前提是LinearLayout要是Horizontal的
- Scroll.rar (42 KB)
- 下载次数: 1
发表评论
-
ScrollView嵌套Edittext
2015-04-08 18:26 841scrollview 中加入多个控件如 edittext 后会 ... -
Android圆角图片
2015-03-11 17:44 693my_wane_shape.xml 快速圆角背景边框实现, ... -
SQLite多线程读写实践及常见问题总结
2015-02-13 17:06 944基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一 ... -
android加速度感应
2015-01-19 10:25 14721.android测量数据 (1)android设备坐标系 ... -
MatrixCursor的使用
2015-01-19 09:49 1045ContentProvider对外共享数据的时候的query( ... -
Android 获取控件的宽高高级用法(MeasureSpec)
2015-01-15 14:23 998一个MeasureSpec封装了父 ... -
Android_GridView_GridView概述及实现水平滑动
2015-01-14 17:14 11501.GridView简介 GridView是ViewGroup ... -
Android MMS,SMS之常用Uri
2014-09-19 16:32 1322Android MMS,SMS之常用Uri Android ... -
android短彩信查询以及MMS表结构
2014-09-19 16:31 2235android短信的数据库的Uri是不公开的, 读取起来时灰常 ... -
使用Android自带DownloadManager下载文件
2014-08-19 11:04 767SDK在API Level 9中加入了DownloadMan ... -
android textview里链接点击事件,增加图片
2014-08-07 16:45 1143Android系统默认给TextView插入图片提供了三种方 ... -
android Home事件汇总
2014-07-18 11:30 1004方法一:android 4.0以后无法通过更改页面的类型来 ... -
Android风格与主题(style and theme)
2014-07-16 16:35 671Android xml风格和主题文 ... -
Android中播放声音的两种方法
2014-05-30 15:09 667在Android中,音频、视 ... -
android 杀进程方法
2014-05-26 17:43 1006关闭应用的方法: 1.System.exit(0); ... -
android service 生命周期
2014-04-21 16:16 786有了 Service 类我们如何启动他呢,有两种方法: ... -
解决ADB端口被占用的问题
2014-04-21 16:14 832究其源就是adb server没启动 经过分析整理如下: ... -
输入法隐藏打开
2013-12-23 14:24 817首次进入activity,如果有个edittex ... -
google经纬度互转
2013-07-11 16:34 935https://developers.google.com/ ... -
android 安装删除软件
2013-07-08 17:19 11461、 Android.mk文件 LOCAL_PA ...
相关推荐
总之,非TextView的布局式跑马灯是一种高级的UI实现,它需要开发者具备扎实的Android基础知识,包括自定义View、动画、数据绑定等,同时也体现了开发者对用户体验的重视。这样的技术不仅能提升应用的界面表现,也能...
"android自定义横向跑马灯TextView"就是一个典型的示例,它允许文字在一个视图内不断滚动,模拟LED显示屏上的跑马灯效果。这种效果通常用于显示通知、提示信息或者标题,即使只有一个字符也能实现滚动。 跑马灯效果...
本篇文章将详细介绍如何在Android中实现TextView的无焦点跑马灯和水平滚动效果。 首先,我们需要理解TextView的基础属性。`android:singleLine`属性用于将文本限制为一行,`android:ellipsize`属性则控制当文本超出...
总的来说,Android的TextView跑马灯效果是通过结合XML布局属性和代码控制实现的,它为展示长文本提供了灵活的解决方案,特别是在有限的空间内。理解和掌握这个功能对于Android开发者来说非常有用,可以提升用户体验...
在Android开发中,为TextView添加跑马灯效果是一种常见的需求,它可以使得较长的文字在有限的空间内循环滚动显示,增加界面的动态感。本篇文章将详细讲解三种实现TextView跑马灯效果的方法。 ### 1. 使用`ellipsize...
5. 还有一个特殊情况,如果TextView在XML布局文件中设置了 `android:focusable="false"` 或 `android:focusableInTouchMode="false"`,那么跑马灯可能不会启动,因为TextView需要获取焦点才能启动滚动。所以,确保这...
首先,要实现TextView的跑马灯效果,我们需要在XML布局文件中设置`android:singleLine="true"`(对于API 26及以上版本,需使用`android:maxLines="1"`)和`android:ellipsize="marquee"`。这将使TextView单行显示,...
综上所述,这个"Android ListView,TextView跑马灯Demo"展示了如何在ListView的每一项中实现TextView的跑马灯效果。通过正确设置TextView的属性和ListView的焦点管理,我们可以在应用中创建出动态、吸引人的UI元素,...
在Android开发中,TextView是...总之,TextView的跑马灯、闪烁和跳动动画是Android开发中增强用户体验的重要手段。通过理解和实践这些效果,开发者可以为用户提供更加丰富的视觉体验,同时提升应用的吸引力和互动性。
本示例"Android垂直滚动TextView跑马灯Demo"就是一种常见的UI特效,它主要用于显示大量的文本内容,尤其适用于展示滚动公告、新闻标题或者广告等内容。跑马灯效果在Android中通常是通过自定义View或者对现有控件进行...
在Android开发中,"TextView循环改变大小的跑马灯效果"是一种常见的动态UI设计,它可以使文本在TextView中持续滚动并动态改变大小,营造出引人注目的视觉体验。跑马灯效果通常用于显示较长的文本,当文本无法完全...
在Android开发中,`TextView`是用于显示文本的常见组件。当需要创建一种滚动文本效果,...总之,通过合理设置`TextView`的相关属性,可以在Android应用中轻松实现跑马灯效果,为用户提供动态且引人注目的文本展示方式。
- 如果布局中有多个`TextView`设置了跑马灯效果,一次只能有一个能生效,因为Android系统一次只允许一个View拥有焦点。 4. **优化** - 为了提升用户体验,可以考虑添加动画效果,比如渐入渐出,使得滚动更自然。 ...
在Android开发中,"特效-textView跑马灯"是一种常见的UI动态效果,它通常用于显示滚动的文字信息,比如新闻标题或者广告标语。这种效果模仿了实际生活中的跑马灯,即文字在一个固定区域里循环滚动,给人一种连续不断...
Android TextView 实现跑马灯效果 Android TextView 实现跑马灯效果是 Android 开发中常见的需求之一。跑马灯效果是指文本滚动的效果,常用于展示长文本内容。本文将详细介绍如何使用 Android TextView 实现跑马灯...
总之,Android中的跑马灯效果可以通过`TextView`的`marquee`属性轻松实现,但对于更复杂的需求,我们可以自定义布局组件,如`MarqueeLayout`,以实现更多功能和更高的灵活性。通过这样的自定义,我们可以更好地满足...
Android 自定义 TextView 实现竖直滚动跑马灯效果 Android 自定义 TextView 实现竖直滚动跑马灯效果是 Android 开发中的一种常见需求。跑马灯效果指的是 TextView 中的文字可以水平或竖直滚动,达到拉动和显示大量...
在Android开发中,"跑马灯"效果通常指的是TextView或者EditText的内容自动滚动,这种效果常见于通知栏消息、广告轮播等场景。标题提到的"android跑马灯效果,失去焦点也可以实现"意味着即使控件没有获取到焦点,仍然...
在Android开发中,TextView是用于显示文本的基本...以上就是Android中TextView跑马灯的两种实现方式,无论是使用内置属性还是自定义动画,都能实现文本的循环滚动效果。在实际开发中,可以根据项目需求选择合适的方法。