最近由于旋转门问题的一个客户找我,当在字符25更多的时候是不是走了,后来,我在重现的问题,发现问题如下面:

问题1.人物25几个月之内可以去。

问题2.在人物25个月,虽然比屏幕宽度,不去

问题3.屏幕宽度能够走的。

查看各种资料。发现例如以下原因导致。但无法解释问题1.

显示跑马灯效果的前提条件就是你的文本内容要比显示文本的外部组件长,即外部组件无法完整的显示内部的文本内容。

因此要实现跑马灯效果有两种设置方式:

1、layout_width=”"设置为成比文本内容短的固定值。最好不要写成wrap_content或者fill_parent。

2、假设layout_width=”"设置wrap_content或者fill_parent,那么能够添加上 android:paddingLeft="15dip",android:paddingRight="15dip"使两端的距离加大而无法所有显示文本内容。可是这有一个缺陷就是在手机的屏幕变大时。距离没有变大,外部组件又能够正常显示内部文本。于是又无法显示跑马灯效果,因此建议第一种设置为佳。

修正代码例如以下:

if(wm !=null && mMainPanel != null){

     try {

      wm.removeView(mMainPanel);

      wm = null;

      mMainPanel = null;

     } catch (Exception e) {

      e.printStackTrace();

     }

    }

    wm = (WindowManager)context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);

    WindowManager.LayoutParams params = new WindowManager.LayoutParams();

    //设置窗体布局居于全部之上

                params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;

                //使窗体失去焦点

                params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;


                //背景透明

                params.format = PixelFormat.RGBA_8888;

                params.alpha =  0.7f;//透明度

              

                params.width = WindowManager.LayoutParams.WRAP_CONTENT;

                params.height = WindowManager.LayoutParams.WRAP_CONTENT;

               

                params.x = 0;

                params.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;

               

    isNeedShow = true;

    mMainPanel = (LinearLayout) inflater.inflate(R.layout.notify_message_bottom, null);

    mLinearLayout = (LinearLayout)mMainPanel.findViewById(R.id.no_button_layout);

    mLinearLayout.setOnClickListener(new OnClickListener() {

     @Override

     public void onClick(View v) {

      cancelDialog();

     }

    });

    titleText = (TextView) mMainPanel.findViewById(R.id.bottem_text);

    DisplayMetrics dm = new DisplayMetrics();

    dm = context.getResources().getDisplayMetrics();

//    titleText.setWidth(dm.widthPixels);

    titleText.setMarqueeRepeatLimit(-1);

    //次数减一才是真正的次数

    Log.d(TAG, "scrollCount: "+(scrollCount-1));

//    titleText.setMarqueeRepeatLimit(scrollCount-1);

    

    String content = mArgs.getTitle()+":"+mArgs.getContent();

    TextPaint paint = titleText.getPaint();

    float len = paint.measureText(content);

    //1280

    Log.d(TAG, "len: "+len+" ,dm.widthPixels: "+dm.widthPixels);

    for (int i = 0; (len < dm.widthPixels); i++) {

     len = paint.measureText(content);

     content = content + " ";

    }

    //tcl对接加入了这个。设置长度必须短于文本,否则不滚动。

1288

    Log.d(TAG, "content: "+content);

    Log.d(TAG, "new content: "+paint.measureText(content));

    titleText.setWidth((int)paint.measureText(content)-50);

    titleText.setText(content);

//    titleText.setMovementMethod(ScrollingMovementMethod.getInstance());

    wm.addView(mMainPanel, params);//加入到系统窗体中

版权声明:本文博主原创文章。博客,未经同意不得转载。

左右TextView旋转门问题的更多相关文章

  1. 关于textview显示特殊符号居中的问题

    话说这是2017年的第一篇博客,也是一篇技术博客.先从简单的一篇解决问题开始吧,千里之行,始于足下! ------------------------------------------------- ...

  2. 奇葩问题-TextView无法获取值

    问题场景 前几天写一个界面的时候,遇到一个非常奇葩的问题.app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了.我明明是对某个界面的一个textview赋值了,而且服务端也返 ...

  3. 动态给textView加图片

    Drawable img = layout.getResources().getDrawable(R.drawable.icon); // 调用setCompoundDrawables时,必须调用Dr ...

  4. TextView使用大全

    最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,写一个系列的话,大家学习起来也有头有尾. 今天就从我们每 ...

  5. TextField和TextView的限制输入长度

    TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...

  6. RAC textView的双向绑定

    今天在写关于textView的数据绑定时原先写法是这样的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78 ...

  7. android textview 自动换行 整齐排版

    一.问题在哪里? textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子: 上述特殊情况包括: 1)全角/半角符号混排(一般是数字.字母.汉字混排) 2)全角/半角 ...

  8. textView的提醒文字

    如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现 1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情 ...

  9. 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio

    1. TextView控件是文本表示控件,主要功能是向用户展示文本的内容,它是不可编辑的,如设置标题:EditText控件是编辑文本控件,主要功能是让用户输入文本的内容,它是可以编辑的.每一个控件都有 ...

随机推荐

  1. 使用linux操作系统的公司服务器有哪些品牌

    服务器硬件是什么牌子的? 操心系统有哪些?cpu是哪些?

  2. PHP与memcache和memcached以及安装使用

    老规则,在作者寒冰讲之前我们要来明确memcache与memcached这两个东西到底是什么? 说法一: 两个不同版本的php的memcached的客户端 new memcache是pecl扩展库版本 ...

  3. 'swap file "xx" exists' linux

    solution: 1)swap to another tty, kill processes using 'sudo kill -9 pid' 2)'Recover' the 'warn-openn ...

  4. 在浏览器中打不开Oracle 11gR2的企业管理器页面

    最简单的办法,重建EM 四个步骤: emca -repos drop emca -repos create emca -config dbcontrol db emctl start dbconsol ...

  5. git clone 远程分支

    先初始化一个git 仓库  命令:git init git clone 相应的地址 这样就会形成一个.git 隐藏文件夹 一定要注意的,要进入到子文件夹去git checkout feature/0. ...

  6. Android Init语言

    Android Init语言是一种特别简单的语言,专门用来写Android的Init进程使用的配置文件的. 相当于Linux系统中的rc文件(这句话对于Linux者多半是句废话). Android I ...

  7. 【行为型】Chain of responsibility模式

    职责链模式将对象的请求处理组成链式结构,并将请求按链式结构逐个传递下去,直接被其中的某个处理者处理为止.由此可知,职责链模式的适用场合是对指定请求,可以有多个请求处理者(或称为请求响应者),但用户并不 ...

  8. 函数式编程做用户登陆注册练习-pycharm上

    def login(username,password): """ 用户登陆 :param username: 用户名 :param password:密码 :retur ...

  9. Google Noto Sans CJK 字体

    下载链接:https://code.google.com/p/noto/source/browse/third_party/noto_cjk 等自己安装完成,再来个体验说明.

  10. Google Chrome快捷键大全

    信很多朋友在使用过Google Chrome之后,就会不想回到原先使用的浏览器了,尤其是IE.没错Google Chrome的优点很多,已经获得了一大部分网友们的用户,软件志现在也是Firefox+C ...