【问题标题】:Reducing text size in textview if the view is covered by another view or is off screen如果视图被另一个视图覆盖或不在屏幕上,则减少文本视图中的文本大小
【发布时间】:2014-12-09 05:47:21
【问题描述】:

我试图确保文本在固定高度视图中完全可见。如果 textview 的高度高于它所在的视图,则需要缩小文本大小。有人告诉我使用 Paint 并测量文本。我不确定我应该如何检查视图是否超出其父视图或被另一个视图覆盖。

                ViewTreeObserver vto = mTextView.getViewTreeObserver();
                vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        ViewTreeObserver obs = mTextView.getViewTreeObserver();
                        obs.removeGlobalOnLayoutListener(this);
                        Paint paint = mTextView.getPaint();
                        float measurment = paint.measureText(mTextView.getText().toString()); 

                        //What to do!? 
                        }
                    });

【问题讨论】:

    标签: android android-layout textview text-size


    【解决方案1】:

    ViewTextView 的超类,有一个getHeight() 函数可以测量像素大小。另请参见 TextView.getLineHeight() 以返回单行文本的高度(以像素为单位),并参见 getLineCount() 以获取 TextView 的行数。

    我会提醒您不要使用您的方法。使用不同的布局密度更容易(/saner),而不是以编程方式调整设备之间的布局。设置起来有点烦人,但我想说的是,在 GUI 预览中设置一次布局比必须重做数学并在运行和测试之间来回切换要容易得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多