- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我搜索了很多关于 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/
我正在做一个带有相册的页面 View Controller ,由于我一直无法找到一种方法来在不更改图片的情况下平移缩放的图像,所以我希望图像在用户停止捏。 这是我的代码: @objc func p
我使用 OpenGL 绘制了几个二维形状现在我想添加捏/缩放。我的观点是透视图(顶 View )。我假设它是 3D,z 轴 = 0。 现在,我应该如何更改 glfrustum 并在我的 Activit
我可以像这样使用缩放功能: - (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer { if([recognizer sta
如果您在跟踪设备位置的同时在 Apple 的 map 应用程序中缩放以放大/缩小,则捏合手势的“平移”组件将被忽略,蓝色位置指示器将固定在屏幕中央。使用普通 MKMapView 时情况并非如此。 假设
在过去的几个小时里,这个问题一直让我发疯。所以我有一个非常简单的 UIScrollView 设置: -UIScrollView -UIImageView 就是这样。 scrollview 和
1.UITapGestureRecognizer 点击/双击手势 复制代码 代码如下: var tapGesture = UITapGestureRecognizer(target:
我是一名优秀的程序员,十分优秀!