`

android 布局式跑马灯,非TextView

 
阅读更多

如题,简单的实现了跑马灯效果,把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的
分享到:
评论

相关推荐

    Android基于TextView不获取焦点实现跑马灯效果

    主要介绍了Android基于TextView不获取焦点实现跑马灯效果,结合实例形式分析了Android基于TextView实现跑马灯的功能与布局相关技巧,需要的朋友可以参考下

    完美实现多个textview 的跑马灯效果,外加各个textview的点击事件(用布局移动实现)

    完美实现多个textview 的跑马灯效果,外加各个textview的点击事件(用布局移动实现)

    Android TextView实现跑马灯效果的方法

    主要介绍了Android TextView跑马灯效果实现方法,涉及Android布局文件中相关属性的设置技巧,非常简单实用,需要的朋友可以参考下

    Android自定义TextView跑马灯效果

    Android自带的跑马灯效果不太好控制,还必须要满足条件才能有效果,而且速度不受控制。前面我的博客中有一篇就是用Android自带的跑马灯效果的,但是基于不同的使用效果,这里在网上找到了一个更好的方法。沿用了作者...

    android使用TextView实现跑马灯效果

    本文实例为大家分享了android使用TextView实现跑马灯效果的具体代码,供大家参考,具体内容如下 先上效果图:此为静态图,实际动态中文字匀速向左滑动。 实现步骤: 第一步:创建好布局页面  &lt;?xml version=...

    Android TextView跑马灯效果实现方法

    主要介绍了Android TextView跑马灯效果实现方法,涉及Android布局文件中相关属性的设置技巧,非常简单实用,需要的朋友可以参考下

    Android自定义textview实现竖直滚动跑马灯效果

    本文实例为大家分享了Android自定义textview实现跑马灯效果的具体代码,供大家参考,具体内容如下 xml布局 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;RelativeLayout xmlns:android=...

    Android实现跑马灯效果的方法

    本文实例讲述了Android实现跑马灯效果的方法。分享给大家供大家参考。具体如下: 运行效果截图如下: 直接在布局里写代码就好了: &lt;TextView android:id=@+id/menu_desc android:layout_width=300dip ...

    Android 应用中TextView垂直滚动

    项目中欢迎词多的时候需要实现上下滚动,了解到在android中TextView可以轻松实现横向跑马灯效果,但是对垂直滚动没有直接的支持方法,于是百度上谷歌,谷歌上百度,最终还是没有发现一个拿来即用的demo,呵呵,于是...

    TextView实现文字的跑马灯效果&TextSwitcher实现文字竖直飞出和飞入

    TextView实现文字的跑马灯效果&TextSwitcher实现文字竖直飞出和飞入,使用的纯代码布局方式。

    自定义TextView跑马灯效果可控制启动/停止/速度/焦点

    由于项目需求需要用的可控制性高的跑马灯效果,所以自己写了一个自定义的TextView 注意:在布局文件引用本view时,paddingLeft,paddingRigh都必须为0dp,需要增加这两个属性的,大家可以自行修改代码。 android:...

    自定义刷新Layout,布局放Listview,TextView或别的控件都可以,亲测完整Demo,欢迎使用

    自定义刷新Layout,布局放Listview,TextView或别的控件都可以,亲测完整Demo,欢迎使用

    Android音乐播放器制作 加入控制台(三)

    文字跑马灯:TextView的跑马灯效果以及TextView的一些属性 具体实现 首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一个invisible,为了让他点击有音乐播放的时候控制台才显示出来: &lt;...

    Android开发视频教程合集.txt

    《老罗Android开发视频教程》第四集:TextView实现跑马灯效果.mp4 《老罗Android开发视频教程》第四集:JavaWeb实现产品表维护二.mp4 《老罗Android开发视频教程》第十集:经纬度和地址的转换.avi 《老罗Android开发...

    老罗android视频开发源码和ppt经典

    6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText中输入特定的字符 6.7 AutoCompleteTextView完成输入 6.8 Button按钮的焦点变化 6.9 Button图文混排的按钮 6.10 RadioButton单选按钮的使用 6.11 ...

    Android代码-MarqueeView

    自定义跑马灯MarqueeView,用TextView 出现了各种坑啊 , 尤其是在页面中同时存在EditText 的时候,简单的用法,完善的功能,希望您能喜欢!  效果图 : gif录制出来有点怪,可以安装看看实际效果 HowTo Use?/...

    Android帮助文档及一些资料打包放送

    [Android1_5]TextView跑马灯效果 - 农民伯伯 - 博客园.mht376.70 KB [Android1_5]打开多个Activity,返回到第一个Activity的问题 - 农民伯伯 - 博客园.mht396.35 KB [Android1_5]标签TabHost图片文字覆盖的问题 - ...

    Android代码-AutoScrollLayout

    1、文字横向滚动只是直接用TextView实现跑马灯效果 2、文字竖向滚动实际上是在布局中加入了两个TextView使用,使用handler控制显示和隐藏,加上动画实现的竖向滚动。 3、竖向的View滚动可实现类似淘宝首页的效果,...

Global site tag (gtag.js) - Google Analytics