scrollview 中放LinearLayout 或imageview下面有空白区域

有时候在scrollview中放置其他组件时,如imageview不能完全充满scrollview 我也试出来的可以:<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"  // 关键设置
    android:layout_height="fill_parent"  // 关键设置  不能用match_parent
    android:fillViewport="true" 
    android:layout_alignParentBottom="true" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"   // 关键设
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
首先,我们需要在布局文件中定义一个 ScrollView 和一个 ImageView,代码如下: ```xml <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/image"/> </LinearLayout> </ScrollView> ``` 然后,在 Kotlin 代码中,我们可以通过设置 ImageView 的 ScaleType 属性来实现缩放,代码如下: ```kotlin class MainActivity : AppCompatActivity() { private lateinit var scrollView: ScrollView private lateinit var imageView: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) scrollView = findViewById(R.id.scrollView) imageView = findViewById(R.id.imageView) // 设置缩放类型为矩阵 imageView.scaleType = ImageView.ScaleType.MATRIX // 设置手势监听器 val gestureDetector = GestureDetector(this, object : GestureDetector.SimpleOnGestureListener() { override fun onDoubleTap(e: MotionEvent?): Boolean { // 双击时触发缩放 val matrix = Matrix(imageView.imageMatrix) matrix.postScale(2f, 2f, e?.x ?: 0f, e?.y ?: 0f) imageView.imageMatrix = matrix imageView.invalidate() return true } }) // 设置触摸监听器 imageView.setOnTouchListener { _, event -> gestureDetector.onTouchEvent(event) true } // 设置滑动条 scrollView.viewTreeObserver.addOnScrollChangedListener { val scrollY = scrollView.scrollY val height = scrollView.getChildAt(0).height - scrollView.height val progress = (scrollY.toFloat() / height.toFloat() * 100).toInt() // 更新进度条 // progressBar.progress = progress } } } ``` 在上面的代码中,我们通过设置 ImageView 的 ScaleType 属性为 MATRIX,实现了图片的缩放。然后,我们使用 GestureDetector 监听双击事件,在双击时触发缩放操作。 另外,我们还可以通过监听 ScrollView 的滚动事件,来更新滑动条的进度。在代码中,我们使用了 ProgressBar 来展示滑动条,但是需要自己添加到布局文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值