国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android拖放startDragAndDrop拖拽onDrawShadow動態(tài)添加View,Kotlin(3)

這篇具有很好參考價值的文章主要介紹了Android拖放startDragAndDrop拖拽onDrawShadow動態(tài)添加View,Kotlin(3)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Android拖放startDragAndDrop拖拽onDrawShadow動態(tài)添加View,Kotlin(3)

import android.content.ClipData
import android.graphics.Canvas
import android.graphics.Point
import android.os.Bundle
import android.util.Log
import android.view.DragEvent
import android.view.View
import android.view.View.OnDragListener
import android.view.View.OnLongClickListener
import android.widget.FrameLayout
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
    private val TAG = "fly"

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

        val imageView = findViewById<ImageView>(R.id.image)

        val builder = MyDragShadowBuilder(imageView)
        imageView.setOnLongClickListener(object : OnLongClickListener {
            //長按事件觸發(fā)拖拽
            override fun onLongClick(v: View?): Boolean {
                Log.d(TAG, "onLongClick")

                val data = ClipData.newPlainText("name", "phil")
                imageView.startDragAndDrop(
                    data,
                    builder,
                    null,
                    0 or View.DRAG_FLAG_GLOBAL or View.DRAG_FLAG_OPAQUE
                )

                return true
            }
        })

        imageView.setOnDragListener(object : OnDragListener {
            override fun onDrag(v: View?, event: DragEvent?): Boolean {
                when (event?.action) {
                    DragEvent.ACTION_DRAG_STARTED -> Log.d(TAG, "DragEvent.ACTION_DRAG_STARTED")
                    DragEvent.ACTION_DRAG_ENTERED -> Log.d(TAG, "DragEvent.ACTION_DRAG_ENTERED")
                    DragEvent.ACTION_DRAG_ENDED -> Log.d(TAG, "DragEvent.ACTION_DRAG_ENDED")
                }

                return true
            }
        })
    }

    class MyDragShadowBuilder(private var mView: View) :
        View.DragShadowBuilder() {

        override fun onProvideShadowMetrics(outShadowSize: Point?, outShadowTouchPoint: Point?) {
            val width: Int = mView.width * 2
            val height: Int = mView.height * 2

            //拖動圖像的寬和高
            outShadowSize?.set(width, height)

            //手指在拖動圖像的位置 中點
            outShadowTouchPoint?.set(width / 2, height / 2)
        }

        override fun onDrawShadow(canvas: Canvas) {
            val width: Int = mView.width * 2
            val height: Int = mView.height * 2

            val image = ImageView(mView.context)
            image.setImageResource(android.R.drawable.stat_notify_error)
            image.layoutParams = FrameLayout.LayoutParams(width, height)

            val frameLayout = FrameLayout(mView.context)
            frameLayout.setBackgroundColor(
                ContextCompat.getColor(
                    mView.context,
                    android.R.color.holo_green_light
                )
            )
            frameLayout.addView(image)

            frameLayout.measure(width, height)
            frameLayout.layout(0, 0, width, height)
            frameLayout.draw(canvas)
        }
    }
}

圖像隨著手指拖放滑動:

Android拖放startDragAndDrop拖拽onDrawShadow動態(tài)添加View,Kotlin(3),Android?,kotlin,android,kotlin

Android View拖拽/拖放DragAndDrop自定義View.DragShadowBuilder,Kotlin(2)-CSDN博客文章瀏覽閱讀54次。??Android DynamicGrid:拖曳交換位置Android DynamicGrid是一個第三方開源項目,DynamicGrid在github上的項目主頁是:https://github.com/askerov/DynamicGrid它實現(xiàn)在一個網(wǎng)格布局內,拖曳任意子view實現(xiàn)動態(tài)的交換位置,這很類似手機的桌面,手機桌面的圖標,均可自由拖曳實現(xiàn)擺放位置的交換,如動圖所示:_android 拖拽交換位置。Android View拖拽startDragAndDrop,Kotlin-CSDN博客。https://blog.csdn.net/zhangphil/article/details/134008458

Android View拖拽startDragAndDrop,Kotlin-CSDN博客一個Android手勢縮放圖片的工具類;??Android DynamicGrid:拖曳交換位置Android DynamicGrid是一個第三方開源項目,DynamicGrid在github上的項目主頁是:https://github.com/askerov/DynamicGrid它實現(xiàn)在一個網(wǎng)格布局內,拖曳任意子view實現(xiàn)動態(tài)的交換位置,這很類似手機的桌面,手機桌面的圖標,均可自由拖曳實現(xiàn)擺放位置的交換,如動圖所示:_android 拖拽交換位置。但是還有一些遺漏問題尚未解決:垂直方向的拖曳。https://blog.csdn.net/zhangphil/article/details/133994955文章來源地址http://www.zghlxwxcb.cn/news/detail-719675.html

到了這里,關于Android拖放startDragAndDrop拖拽onDrawShadow動態(tài)添加View,Kotlin(3)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Android開發(fā)之Fragment動態(tài)添加與管理

    Android開發(fā)之Fragment動態(tài)添加與管理

    在 activity_main.xml 中,聲明兩個按鈕備用,再加入一個幀布局,待會兒用來展示Fragment。 用來展示的Fragment,隨便找兩個AS預設的即可,這里使用的是一個BlankFragment和一個ItemFragment。 BlankFragment: ItemFragment: 在主程序里,我們要實現(xiàn)點擊按鈕顯示不同的Fragment。這里使用一種新

    2024年02月15日
    瀏覽(16)
  • Android——viewpage2+tablayout+fragment動態(tài)添加刪除

    Android——viewpage2+tablayout+fragment動態(tài)添加刪除

    一、簡介: 1、添加和刪除按鈕可動態(tài)添加刪減tab頁面 2、獲取每個fragment數(shù)據(jù)頁上的數(shù)據(jù) 3、為每個數(shù)據(jù)頁賦值 二、 效果圖: 三、實現(xiàn): 主要功能實現(xiàn):( ViewPage2Fragment.java ) 先初始化適配器 frament數(shù)據(jù)頁(ViewPage2DataFragment.java) 適配器(FragmentStateViewPager2Adapter.java) 主布

    2024年02月16日
    瀏覽(30)
  • Android10 Settings系列(三)根據(jù)需求動態(tài)添加刪除一級菜單、二級菜單的設置項

    當時遇到定制需求,需要根據(jù)實際需要隱藏Settings的菜單項,于是開始了尋找方法 在看了一下源碼,經(jīng)過嘗試后,確認生效后,就簡單說明一下Settings中布局中主要組成元素 Settings中的菜單項是由 PreferenceScreen 和Preference組成的。其中PreferenceScreen 類似于我們平常使用布局中的

    2024年02月14日
    瀏覽(103)
  • Vue 實現(xiàn)拖拽模塊(一)拖拽添加組件

    Vue 實現(xiàn)拖拽模塊(一)拖拽添加組件

    本文主要介紹了vue拖拽組件實現(xiàn)構建頁面的簡單實現(xiàn),文中通過示例代碼介紹,感興趣的小伙伴們可以了解一下 本文主要介紹了 Vue拖拽添加組件的簡單實現(xiàn),具體如下: 效果圖 使用 H5 的新特性拖放操作來實現(xiàn),拖拽左側的組件放到右邊主體部分,然后主體部分識別拖拽組

    2024年02月10日
    瀏覽(30)
  • Axure教程—拖拽獲?。ㄖ欣^器+動態(tài)面板 )

    Axure教程—拖拽獲?。ㄖ欣^器+動態(tài)面板 )

    本文將教大家如何用AXURE中的中繼器和動態(tài)面板制作拖拽獲取效果 一、效果介紹 如圖: 預覽地址:https://68e5b3.axshare.com 下載地址:https://download.csdn.net/download/weixin_43516258/87874085?spm=1001.2014.3001.5503 二、功能介紹 拖拽數(shù)據(jù)從左邊到右邊 右邊數(shù)據(jù)可刪除 三、制作方法 1、拖入橫豎

    2024年02月08日
    瀏覽(16)
  • CloudCompare 二次開發(fā)(6)——插件中拖拽添加Qt窗口(區(qū)域生長算法為例)

    CloudCompare 二次開發(fā)(6)——插件中拖拽添加Qt窗口(區(qū)域生長算法為例)

    本文由CSDN點云俠原創(chuàng),原文鏈接。爬蟲網(wǎng)站自重。 ??手動拖拽的方式搭建Qt對話框界面的制作流程,以PCL中的點云區(qū)域生長算法為例進行制作。 1、將 ....pluginsexample 路徑下的 ExamplePlugin 復制一份并修改名字為 CCPointCloudProcess 。 2、創(chuàng)建窗口UI文件 使用任意Qt工程新建對話

    2023年04月11日
    瀏覽(22)
  • vue3拖拽布局+動態(tài)組件+自適應布局

    1.拖拽布局插件 Vue Grid Layout -? 適用Vue.js的柵格布局系統(tǒng) 可拖動和可調整大小柵格布局的Vue組件。 https://jbaysolutions.github.io/vue-grid-layout/zh/ //在package.json中dependencies下添加下面插件庫,并執(zhí)行命令npm install ?\\\"vue-grid-layout\\\":?\\\"^3.0.0-beta1\\\", ?2.拖拽頁面代碼 3.圖表子組件代碼

    2024年02月11日
    瀏覽(20)
  • draggable + grid 拖拽插件 + 網(wǎng)格布局 動態(tài)生成首頁模版

    draggable + grid 拖拽插件 + 網(wǎng)格布局 動態(tài)生成首頁模版

    背景: ? ? ? ? 1、首頁模板由多個子組件組成,如圖表、新聞、公告、輪播圖等,一般都由前端引入子組件,寫在固定的位置上,最終形成一個固定的首頁模板; ? ? ? ? 2、像這樣直接在代碼中寫死的首頁沒有靈活性,不同用戶想展示出來的首頁模板千篇一律; ? ? ? ?

    2024年02月01日
    瀏覽(37)
  • Vue2 實現(xiàn)內容拖拽或添加 HTML 到 Tinymce 富文本編輯器的高級功能詳解

    Vue2 實現(xiàn)內容拖拽或添加 HTML 到 Tinymce 富文本編輯器的高級功能詳解

    在 Web 開發(fā)中,Tinymce 被廣泛應用作為富文本編輯器。除了基礎的文本編輯功能,Tinymce 還提供了一系列高級功能,使得文本編輯更加靈活和便捷。本文將介紹如何在 Tinymce 中實現(xiàn)一些高級功能,并深入了解每個工具的使用。 Tinymce 是一款基于 JavaScript 的富文本編輯器,支持豐

    2024年02月03日
    瀏覽(129)
  • Element table根據(jù)字段合并表格(可多字段合并),附帶拖拽列動態(tài)合并

    Element table根據(jù)字段合并表格(可多字段合并),附帶拖拽列動態(tài)合并

    效果如圖,姓名 數(shù)值1 字段進行自動合并 封裝合并列js - tableMerge.js 拖拽使用sortablejs 如果拖拽列 要動態(tài)生成列 注意不支持行拖拽

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包