`
wang_peng1
  • 浏览: 3964967 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在一个封闭的线中确定一个点是不是存在以及textView中文字边界的问题

阅读更多
Bitmap lookup = Bitmap.createBitmap(width, height, Bitmap.Config.ALPHA_8); 
// 
//  确保每个路径都有一个索引值
lookup.eraseColor(0xFF000000); 
 
Canvas canvas = new Canvas(lookup); 
Paint paint = new Paint(); 
 
//
paint.setAntiAlias(false); 
paint.setStyle(Paint.Style.FILL); 
 
for(int i=0;i<paths.size();i++) 
    { 
    paint.setColor(i<<24); 
// 颜色的alpha值0xXX000000 
    canvas.drawPath(paths.get(i), paint);  
    } 

 其实呢在标准的api中是没有这个方法可以调用的,只能通过自己的算法实现

这里呢 是在画的每条线的点都作为一个索引值 然后取索引值就可以了

 

2.

public static void autoScaleTextViewTextToHeight(TextView tv) 
{ 
   
final float initSize = tv.getTextSize(); 
   
//get the width of the view's back image (unscaled)....  
   
float minViewHeight; 
   
if(tv.getBackground()!=null) 
   
{ 
      minViewHeight
= tv.getBackground().getIntrinsicHeight(); 
   
} 
   
else 
   
{ 
      minViewHeight
= 10f;//some min. 
   
} 
   
final float maxViewHeight = tv.getHeight() - (tv.getPaddingBottom()+tv.getPaddingTop())-12;// -12 just to be sure 
   
final String s = tv.getText().toString(); 
 
   
//System.out.println(""+tv.getPaddingTop()+"/"+tv.getPaddingBottom()); 
 
   
if(minViewHeight >0 && maxViewHeight >2) 
   
{ 
     
Rect currentBounds = new Rect(); 
      tv
.getPaint().getTextBounds(s, 0, s.length(), currentBounds); 
     
//System.out.println(""+initSize); 
     
//System.out.println(""+maxViewHeight); 
     
//System.out.println(""+(currentBounds.height())); 
 
     
float resultingSize = 1; 
     
while(currentBounds.height() < maxViewHeight) 
     
{ 
        resultingSize
++; 
        tv
.setTextSize(resultingSize); 
 
        tv
.getPaint().getTextBounds(s, 0, s.length(), currentBounds); 
       
//System.out.println(""+(currentBounds.height()+tv.getPaddingBottom()+tv.getPaddingTop())); 
       
//System.out.println("Resulting: "+resultingSize); 
     
} 
     
if(currentBounds.height()>=maxViewHeight) 
     
{ 
       
//just to be sure, reduce the value 
        tv
.setTextSize(resultingSize-1); 
     
} 
   
} 
} 
以上是群里提出的解答方式 我并没有实际测 只是确实可行的

分享到:
评论

相关推荐

    解决 TextView 中文、英文、数字、符号 排版问题

    例如,`AlignTextView-master`可能就是一个自定义的TextView,专门用于解决中文、英文、数字和符号的排版问题。通过重写`onDraw()`方法,可以自定义绘制逻辑,精确控制每个字符的位置。 4. **利用SpannableString**...

    TextView中文字超链接,点击启动另一个Activity 源码

    有时候,我们希望在TextView中展示的文本包含超链接,当用户点击这些超链接时,能够启动一个新的Activity来执行特定的操作。本篇将详细介绍如何实现TextView中的文字超链接,并在点击后启动另一个Activity的源码解析...

    旋转TextView文字显示方向

    在Android开发中,TextView是用于显示文本的基本组件。然而,有时候我们可能需要让TextView中的文字以特定的角度旋转显示,比如垂直显示或者倾斜显示,来满足界面设计的需求。这就是"旋转TextView文字显示方向"这一...

    TextView解决自动换行问题

    在Android开发中,`TextView` 是一个非常常用的控件,用于显示单行或多行文本。在某些场景下,我们可能希望限制`TextView`的显示行数,并在超出时使用省略号来表示文本被截断。这就涉及到`TextView`的自动换行与截断...

    Android 一个TextView中设置不同字体大小和颜色

    当我们需要在一个TextView中展示不同字体大小和颜色的文本时,可以借助SpannableString和相关Span类来实现。下面将详细解释如何实现这个功能。 首先,了解SpannableString。SpannableString是CharSequence的一个...

    旋转TextView文字显示

    在某些设计需求中,我们可能需要让TextView的文字呈现旋转状态,比如创建一个垂直显示的标题或者实现某种动态效果。本篇文章将详细探讨如何实现“旋转TextView文字显示”,并结合提供的压缩包文件`android-typeface-...

    解决Android原生TextView显示中英文等末尾参差不齐问题

    3. 使用自定义TextView:创建一个继承自TextView的自定义组件,重写onDraw方法,对绘制过程进行定制,确保中英文字符的宽度统一。这种方法需要对Android的绘图机制有较深的理解。 4. 使用第三方库:市面上有一些第...

    android设置TextView中不同的文字字体大小且垂直居中显示

    在提供的文件“android设置TextView中文字不同的字体大小且垂直居中显示”中,可能包含了一个示例代码或详细步骤,可以帮助开发者更深入地理解这一技术。建议查看该文件以获取更多实践指导。记住,实践中学习和掌握...

    TextView的字体自适应控件的大小

    在Android开发中,`TextView` 是一个非常基础且重要的组件,用于显示文本信息。当我们需要在`TextView`中展示大量文字,并希望它能自动适应屏幕大小和内容长度时,就需要用到字体自适应的技术。标题“TextView的字体...

    同一个TextView不同文字的点击事件 demo

    1. 创建`TextView`:在布局文件中,我们首先创建一个`TextView`,并设置好相应的样式和属性。 ```xml &lt;TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_...

    Android TextView中文字设置超链接、颜色、字体

    在Android开发中,TextView是用于显示文本的基本组件。在许多应用界面中,我们不仅需要展示普通的文本,还可能需要在文本中嵌入超链接,改变部分文字的颜色或字体,以增强用户交互和信息传递的效果。这篇博文将深入...

    android TextView 文字部分渐变

    它允许我们在一个方向上定义多个颜色点,系统会自动将这些颜色平滑地过渡到一起,形成渐变效果。创建`LinearGradient`时,需要指定起始坐标、结束坐标以及颜色数组和位置数组。 ```java LinearGradient gradient = ...

    自定义textview显示文字对齐到最右侧才换行

    在这个版本的自定义TextView中,我们首先检查是否需要截断最后一个单词,如果需要,就在其后面添加省略号。然后,我们在`onDraw()`方法中设置新的文本内容,确保在绘制时显示正确的格式。 最后,在布局XML文件中...

    TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件

    在Android开发中,`TextView`是用于展示文本的常用组件,它可以进行丰富的文本格式化和交互操作。在一些场景下,我们可能需要对`TextView`中的特定部分文字进行颜色变化,甚至为这部分文字添加点击事件,以实现更...

    TextView数字部分颜色处理

    在压缩包文件`SpecialTextView`中,可能包含了一个已经实现了这个功能的自定义`TextView`类,我们可以研究其源代码,学习如何根据需求定制控件的行为,以满足特定的文本颜色处理需求。 总的来说,对`TextView`中...

    TextView自适应字体大小缩放

    在Android开发中,`TextView`是用于展示文本的常用组件,它在用户界面设计中扮演着重要角色。在某些场景下,我们希望`TextView`能够根据文本内容的多少自动调整字体大小,以便文本能完全适应控件的宽度,避免换行...

    Android textview 文字中间加上图片

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它是我们界面设计中不可或缺的一部分。然而,有时我们可能需要在文字中插入图片,以实现更丰富的展示效果。例如,在显示用户头像、表情符号或者特殊...

    android 设置textview中划线效果

    下面是一个具体的示例,展示如何在TextView中同时添加删除线和下划线效果: ```java // 获取TextView TextView textView = (TextView) findViewById(R.id.text_view); // 设置删除线 textView.getPaint().setFlags...

    Android TextView 换行不对齐的问题

    然而,有时开发者会遇到一个棘手的问题,即`TextView`中的换行文字可能不会对齐,尤其是在多行显示时。这个问题通常表现为每一行的起始位置不一致,影响了整体布局的美观度。本文将深入探讨这个问题及其解决方案。 ...

    Android TextView的图片和文字居中探索

    当文本和图片同时存在时,实现它们在TextView中的居中对齐是一项常见的需求。本文将深入探讨如何在Android中实现TextView的图片和文字居中。 首先,我们需要理解TextView的基本属性。`android:gravity`属性用于设置...

Global site tag (gtag.js) - Google Analytics