gpt4 book ai didi

android - 如何在 viewpager 中添加捏缩放 textview?

转载 作者:太空狗 更新时间:2023-10-29 14:09:26 26 4
gpt4 key购买 nike

我搜索了很多关于 ViewPager 中缩放 TextView 的博客。我刚刚找到了很多关于缩放 ImageView 的答案。

我如何在 ViewPager 中添加缩放。

以下是我在发布前阅读的链接:

已更新

@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if (v instanceof TouchImageView) {
return ((TouchImageView) v).canScrollHorizontallyFroyo(-dx);
} else {
return super.canScroll(v, checkV, dx, x, y);
}
}

我在 if (v instanceof TouchImageView) 中遇到错误。错误消息说,TouchImageView 无法解析

最佳答案

创建一个私有(private)类 SimpleOnScaleGestureListener,它像这样在您的 Activity 中扩展 SimpleOnScaleGestureListener

public class SimpleOnScaleGestureListener extends
ScaleGestureDetector.SimpleOnScaleGestureListener {

float scaleFactor;

@Override
public boolean onScale(ScaleGestureDetector detector) {

scaleFactor *= detector.getScaleFactor();
if(isTablet(getApplicationContext())){
setFontStyleandSizeTab();
}else{
setFontStyleandSize();
}
scaleFactor = Math.max(15.0f, Math.min(scaleFactor,36.0f));
View view=pager.getFocusedChild().findViewById(R.id.article_content) ;
View article_intro=pager.getFocusedChild().findViewById(R.id.article_intro) ;

ViewGroup group = (ViewGroup) view;
int count=group.getChildCount();

for(int i=0;i<count;i++){
View child=group.getChildAt(i);
if(child instanceof TextView){
TextView textView=(TextView)child;
textView.setTextSize(scaleFactor);

}
}
return true;
}
}

onScale 函数中,我们首先获取 ScaleFactor 并设置缩放文本的限制。这里的文本大小最小值是 15,最大值是 36
从下一行开始,我们在 viewpager 中为 Textview 应用缩放。

View view=pager.getFocusedChild().findViewById(R.id.article_content);

首先,我通过调用 pager.getFocusedChild() 获取 viewpager 当前项目,我正在获取一个线性布局,其中包含我想要缩放的所有 TextView 。

您可以直接在那里传递 TextView ID。在运行时,我将 TextView 添加到此布局中,这就是为什么我会这样遵循。
如果您想一次缩放具有相同父级的多个 TextView ,那么您可以像这样进行操作,或者您可以通过直接传递 TextView ID 创建多个 View 实例。

textView.setTextSize(scaleFactor);

这里我正在为textview应用缩放

您必须覆盖一个方法来使用viewpager检测触摸事件

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {

super.dispatchTouchEvent(ev);
return scaleGestureDetector.onTouchEvent(ev);

}

然后在 onCreate() 中创建 ScaleGestureDetector 实例,如下所示:

scaleGestureDetector = new ScaleGestureDetector(this, new simpleOnScaleGestureListener());

现在您可以在 viewpager 中应用平滑缩放。

关于android - 如何在 viewpager 中添加捏缩放 textview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com