Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah Java Kesan klik pada koordinat x dan y tertentu dalam imageView

Kesan klik pada koordinat x dan y tertentu dalam imageView

Feb 14, 2024 am 08:06 AM
acara klik

Editor PHP Xigua hari ini akan memperkenalkan kepada anda cara untuk mengesan klik pada koordinat x dan y tertentu dalam imageView. Apabila membangunkan aplikasi mudah alih, kami selalunya perlu memproses peristiwa sentuhan pengguna, terutamanya untuk acara klik dalam kawalan paparan imej (seperti imageView), kami perlu mendapatkan maklumat lokasi klik pengguna dengan tepat. Artikel ini akan menerangkan secara terperinci cara menggunakan kaedah yang berkaitan dalam Android Studio untuk melaksanakan fungsi ini, membantu pembangun mengendalikan operasi klik pengguna dengan lebih baik. Mari lihat!

Kandungan soalan

Saya mempunyai imej pada desktop saya, saya telah membukanya menggunakan aplikasi Paint dan mendapat kedudukan tertentu yang mengandungi piksel x dan y, contohnya: 374,207 px Tetapi apabila saya menambah imej ke aplikasi android saya dan menggunakan sebagai contoh koordinat sentuhan, bukankah mereka sama? Apabila saya mengklik pada kedudukan yang sama dalam paparan imej saya mendapat nilai yang berbeza dan akibatnya bilangan kedudukan jauh lebih tinggi daripada nombor dalam pc saya.

Saya telah menyelesaikan masalah ini selama kira-kira tiga hari dan sekarang saya memerlukan bantuan anda.

Saya mencuba penyelesaian yang berbeza di web, seperti cuba menyongsangkan kedudukan sentuhan untuk mendapatkan nilai piksel, seperti dalam contoh di bawah: http://android-er.blogspot.com/2012/10/get-touched-pixel-color-of-scaled.html?m=1

Tetapi koordinat x dan y yang saya dapat adalah berbeza x:592 y:496

Ini ialah kod apl android saya:

View.OnTouchListener imgSourceOnTouchListener
            = new View.OnTouchListener(){
        @Override
        public boolean onTouch(View view, MotionEvent event) {
            float eventX = event.getX();
            float eventY = event.getY();
            float[] eventXY = new float[] {eventX, eventY};

            Matrix invertMatrix = new Matrix();
            ((ImageView)view).getImageMatrix().invert(invertMatrix);

            invertMatrix.mapPoints(eventXY);
            int x = Integer.valueOf((int)eventXY[0]);
            int y = Integer.valueOf((int)eventXY[1]);


            Drawable imgDrawable = ((ImageView)view).getDrawable();
            Bitmap bitmap = ((BitmapDrawable)imgDrawable).getBitmap();


            //Limit x, y range within bitmap
            if(x < 0){
                x = 0;
            }else if(x > bitmap.getWidth()-1){
                x = bitmap.getWidth()-1;
            }

            if(y < 0){
                y = 0;
            }else if(y > bitmap.getHeight()-1){
                y = bitmap.getHeight()-1;
            }
            
            Log.d(TAG,"X:"+x+" Y:"+y);
            return true;
        }};
Salin selepas log masuk

Sunting: Nampaknya ia ada kaitan dengan mengezum masuk pada imej, tetapi kini persoalannya ialah bagaimana untuk memetakan imej yang dizum dengan nilai x dan y dalam pangkalan data?

Penyelesaian

Alihkan komen untuk menjawab.

Dengan mengandaikan anda tahu dimensi asal (dari pangkalan data?) dan boleh menggunakan wrap_content pada paparan kemudian gunakan (lebar sebagai contoh):

public boolean onTouch(View v, MotionEvent event) {

    // get actual width of view on screen (pixels)
    int w = v.getWidth(); 

    // x coordinate in view's coordinate space
    float tw = event.getX(); 

    // ratio between x coordinate and view width
    float ratioVw = (tw / w); 

    // apply same ratio to original image width.
    int origTouchX = (int) (ratioVw * (origW)); //(origW is original width).

    return true;
}
Salin selepas log masuk

Ulang ketinggian (y).

Atas ialah kandungan terperinci Kesan klik pada koordinat x dan y tertentu dalam imageView. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1670
14
Tutorial PHP
1274
29
Tutorial C#
1256
24
Bangunkan aplikasi desktop yang berkuasa dengan Golang Bangunkan aplikasi desktop yang berkuasa dengan Golang Mar 19, 2024 pm 05:45 PM

Gunakan Golang untuk membangunkan aplikasi desktop yang berkuasa Dengan pembangunan Internet yang berterusan, orang ramai menjadi tidak dapat dipisahkan daripada pelbagai jenis aplikasi desktop. Bagi pembangun, adalah penting untuk menggunakan bahasa pengaturcaraan yang cekap untuk membangunkan aplikasi desktop yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan Golang (bahasa Go) untuk membangunkan aplikasi desktop yang berkuasa dan menyediakan beberapa contoh kod khusus. Golang ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia mempunyai ciri-ciri kesederhanaan, kecekapan, konkurensi yang kuat, dsb., dan sangat sesuai untuk

Bagaimana untuk menyediakan lompat pada halaman log masuk layui Bagaimana untuk menyediakan lompat pada halaman log masuk layui Apr 04, 2024 am 03:12 AM

Langkah penetapan lompat halaman log masuk Layui: Tambah kod lompat: Tambah pertimbangan dalam borang log masuk serah acara klik butang, dan lompat ke halaman yang ditentukan melalui window.location.href selepas berjaya log masuk. Ubah suai konfigurasi borang: tambah medan input tersembunyi pada elemen borang lay-filter="login", dengan nama "redirect" dan nilainya ialah alamat halaman sasaran.

Cara menambah acara sentuhan pada gambar dalam vue Cara menambah acara sentuhan pada gambar dalam vue May 02, 2024 pm 10:21 PM

Bagaimana untuk menambah acara klik pada imej dalam Vue? Import contoh Vue. Buat contoh Vue. Tambahkan imej pada templat HTML. Tambahkan acara klik menggunakan arahan v-on:click. Tentukan kaedah handleClick dalam contoh Vue.

Pembangunan bahasa Hongmeng HarmonyOS dan Go Pembangunan bahasa Hongmeng HarmonyOS dan Go Apr 08, 2024 pm 04:48 PM

Pengenalan kepada pembangunan bahasa HarmonyOS dan Go HarmonyOS ialah sistem pengendalian teragih yang dibangunkan oleh Huawei, dan Go ialah bahasa pengaturcaraan moden Gabungan kedua-duanya menyediakan penyelesaian yang berkuasa untuk membangunkan aplikasi teragih. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk pembangunan dalam HarmonyOS dan mendalami pemahaman melalui kes praktikal. Pemasangan dan Persediaan Untuk menggunakan bahasa Go untuk membangunkan aplikasi HarmonyOS, anda perlu memasang GoSDK dan HarmonyOSSDK terlebih dahulu. Langkah-langkah khusus adalah seperti berikut: #Install GoSDKgogetgithub.com/golang/go#Set PATH

Petua PHP: Cepat Laksanakan Kembali ke Fungsi Halaman Sebelumnya Petua PHP: Cepat Laksanakan Kembali ke Fungsi Halaman Sebelumnya Mar 09, 2024 am 08:21 AM

Tip PHP: Cepat melaksanakan fungsi kembali ke halaman sebelumnya Dalam pembangunan web, kita sering menghadapi keperluan untuk melaksanakan fungsi kembali ke halaman sebelumnya. Operasi sedemikian boleh meningkatkan pengalaman pengguna dan memudahkan pengguna menavigasi antara halaman web. Dalam PHP, kita boleh mencapai fungsi ini melalui beberapa kod mudah. Artikel ini akan memperkenalkan cara cepat melaksanakan fungsi kembali ke halaman sebelumnya dan memberikan contoh kod PHP tertentu. Dalam PHP, kita boleh menggunakan $_SERVER['HTTP_REFERER'] untuk mendapatkan URL halaman sebelumnya

Apakah mekanisme dipacu peristiwa bagi fungsi C++ dalam pengaturcaraan serentak? Apakah mekanisme dipacu peristiwa bagi fungsi C++ dalam pengaturcaraan serentak? Apr 26, 2024 pm 02:15 PM

Mekanisme dipacu peristiwa dalam pengaturcaraan serentak bertindak balas kepada peristiwa luaran dengan melaksanakan fungsi panggil balik apabila peristiwa berlaku. Dalam C++, mekanisme dipacu peristiwa boleh dilaksanakan dengan penunjuk fungsi: penunjuk fungsi boleh mendaftarkan fungsi panggil balik untuk dilaksanakan apabila peristiwa berlaku. Ungkapan Lambda juga boleh melaksanakan panggilan balik acara, membenarkan penciptaan objek fungsi tanpa nama. Kes sebenar menggunakan penunjuk fungsi untuk melaksanakan peristiwa klik butang GUI, memanggil fungsi panggil balik dan mencetak mesej apabila peristiwa itu berlaku.

Apr 09, 2024 pm 12:45 PM

Jawapan: JavaScript menyediakan pelbagai kaedah untuk mendapatkan elemen halaman web, termasuk menggunakan id, nama teg, nama kelas dan pemilih CSS. Penerangan terperinci: getElementById(id): Dapatkan elemen berdasarkan id unik. getElementsByTagName(tag): Mendapatkan kumpulan elemen dengan nama tag yang ditentukan. getElementsByClassName(class): Mendapatkan kumpulan elemen dengan nama kelas yang ditentukan. querySelector(selector): Gunakan pemilih CSS untuk mendapatkan elemen padanan pertama. querySelectorAll(selector): Dapatkan semua padanan menggunakan pemilih CSS

Takluk dunia GUI dengan Python Tkinter: Panduan lengkap Takluk dunia GUI dengan Python Tkinter: Panduan lengkap Mar 24, 2024 am 09:26 AM

Tkinter ialah kit alat GUI yang berkuasa dalam perpustakaan standard Python untuk mencipta antara muka pengguna grafik (GUI) merentas platform. Ia berdasarkan kit alat Tcl/Tk dan menyediakan sintaks yang mudah dan intuitif, membolehkan pembangun Python mencipta antara muka pengguna yang kompleks dengan mudah dan cepat. Kelebihan keserasian merentas platform Tkinter: Aplikasi Tkinter dijalankan pada semua sistem pengendalian utama seperti tingkap, Mac dan Linux. Mudah digunakan: Sintaksnya jelas dan mudah dipelajari, menjadikannya mudah untuk dikuasai oleh pembangun pemula dan berpengalaman. Kebolehlanjutan: Tkinter menyediakan pelbagai widget dan kawalan, membolehkan pembangun mencipta pelbagai jenis antara muka pengguna. Integrasi: Ia berkaitan dengan P