Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Android上的文本视图缩小时,文本会被无意中剪切_Android_Textview_Zooming_Pinch - Fatal编程技术网

当Android上的文本视图缩小时,文本会被无意中剪切

当Android上的文本视图缩小时,文本会被无意中剪切,android,textview,zooming,pinch,Android,Textview,Zooming,Pinch,我们正在开发自定义文本视图,该视图的放大/缩小取决于捏手势,并且能够调整文本视图的大小和缩放文本。但是,缩小此视图时,会无意中剪切文本 我们编写了这样的代码 1.在手势侦听器中获取缩放值,在onDraw()中获取后缩放值。 2.按布局计算新视图大小(int,int,int,int) 这对您来说可能不是完美的解决方案,但您可以尝试一下 1) 检测挤压手势 2) 计算比例因子(您可以手动执行,也可以使用ScaleDetectorclass) 3) 使用LayoutParams实际调整文本视图的大小

我们正在开发自定义文本视图,该视图的放大/缩小取决于捏手势,并且能够调整文本视图的大小和缩放文本。但是,缩小此视图时,会无意中剪切文本

我们编写了这样的代码

1.在手势侦听器中获取缩放值,在onDraw()中获取后缩放值。

2.按布局计算新视图大小(int,int,int,int)


这对您来说可能不是完美的解决方案,但您可以尝试一下

1) 检测挤压手势

2) 计算比例因子(您可以手动执行,也可以使用
ScaleDetector
class)

3) 使用
LayoutParams
实际调整文本视图的大小

4) 但是,它不会缩放文本大小,但您可以根据缩放手势以编程方式进行缩放


如果您有任何问题,请随时发表意见,我以前做过,但要求略有不同。

您可以发布截图吗?请尝试扩展Chase Colburn的内容。@dd619抱歉,我没有上传图像的许可证。但是,屏幕截图上有一个URL。缩小前缩小后缩小@阿里谢谢你的建议。我尝试在我的应用程序中使用此类。然而,当我试图通过挤压放大这个扩展的文本视图时,文本比视图区域大,并且溢出。
    @Override
public void onDraw(Canvas canvas) {         

    android.graphics.Matrix m = new android.graphics.Matrix();          
    m.postScale(mScaleFactor, mScaleFactor);    
    canvas.concat(m);
    layout((int) l, (int) t, (int)r , (int) b );

    super.onDraw(canvas);
}