亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么實現左右滑動切換圖片

發布時間:2022-05-17 11:08:38 來源:億速云 閱讀:235 作者:iii 欄目:開發技術

這篇文章主要介紹“Android怎么實現左右滑動切換圖片”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android怎么實現左右滑動切換圖片”文章能幫助大家解決問題。

簡要說明

本文采用ImageSwitcher實現左右滑動切換圖片。首先調用setFactory方法,設置視圖工廠;然后設置手指觸碰監聽,判斷左滑右滑進而切換圖片。

本地圖片

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageSwitcher
        android:id="@+id/imageSwitcher"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

activity

package com.imageSwitcher

import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    // 本地圖片
    private val images = arrayOf(R.drawable.t1,
            R.drawable.t2,
            R.drawable.t3,
            R.drawable.t4,
            R.drawable.t5,
            R.drawable.t6)
    // 網絡圖片
    private val urlImages = arrayOf("http://ip/aa.jpg",
            "http://ip/bb.jpg",
            "http://ip/cc.jpg",
            "http://ip/dd.jpg",
            "http://ip/ee.jpg",
            "http://ip/ff.jpg")
            
    private var index = 0
    private var touchDownX: Float = 0f
    private var touchUpX: Float = 0f

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        initView()
    }

    private fun initView() {
        // 設置視圖工廠
        imageSwitcher.setFactory {
            val imageView = ImageView(this@MainActivity)
            imageView.setImageResource(images[index])
            imageView
        }
        // 設置觸摸監聽
        imageSwitcher.setOnTouchListener(object : View.OnTouchListener {
            override fun onTouch(view: View?, event: MotionEvent?): Boolean {
                //判斷動作是不是按下
                if (event?.action == MotionEvent.ACTION_DOWN) {
                    // 獲取手指按下時的X坐標
                    touchDownX = event.x
                    return true
                } else if (event?.action == MotionEvent.ACTION_UP) {
                    // 獲取手指離開后的X坐標
                    touchUpX = event.x
                    // 判斷是左滑還是右滑
                    if (touchUpX - touchDownX > 100) {
                        // 上一張
                        if (index == 0) {
                            index = images.size - 1
                        } else {
                            index--
                        }
                    } else if (touchDownX - touchUpX > 100) {
                        // 下一張
                        if (index >= images.size - 1) {
                            index = 0
                        } else {
                            index++
                        }
                    }
                    // 使用自帶的淡入淡出
                    imageSwitcher.inAnimation = AnimationUtils.loadAnimation(this@MainActivity, android.R.anim.fade_in);
                    imageSwitcher.outAnimation = AnimationUtils.loadAnimation(this@MainActivity, android.R.anim.fade_out);
                    // 顯示另一張圖片
                    imageSwitcher.setImageResource(images[index])
                    return true
                }
                return false
            }
        })
    }
}

網絡圖片(采用Glide網絡加載)

  • setFactory方法對應替換:

imageSwitcher.setFactory {
            val imageView = ImageView(this@MainActivity)       
            Glide.with(this).load(urlImages[index]).into(imageView)
            imageView
        }
  • setOnTouchListener對應替換:

Glide.with(this@SwipeRecommend).asBitmap().load(urlImages[index]).into(imageSwitcher.currentView as ImageView)

注意加載http網絡圖片需要設置網絡權限:

  • AndroidManifest.xml中添加:

<uses-permission android:name="android.permission.INTERNET" />
  • AndroidManifest.xml的application標簽添加:

android:networkSecurityConfig="@xml/network_security_config"
  • network_security_config.xml(res/xml/文件夾下,沒有自行創建即可)內容為:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

效果展示

Android怎么實現左右滑動切換圖片

關于“Android怎么實現左右滑動切換圖片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 垣曲县| 通许县| 东乌| 邹城市| 津南区| 长治市| 寿光市| 许昌县| 蒙山县| 宣城市| 灵石县| 神池县| 论坛| 阜新| 西峡县| 峨边| 广水市| 宁蒗| 文登市| 海丰县| 湾仔区| 高平市| 翁牛特旗| 石柱| 乐东| 环江| 海南省| 溆浦县| 巢湖市| 广东省| 封开县| 巧家县| 宜丰县| 宣武区| 阆中市| 东港市| 白朗县| 徐汇区| 拉萨市| 铅山县|