20%

KHUYẾN MẠI

Giảm giá khi nâng cấp web năm 2020

Lập trình phóng to thu nhỏ ảnh pinch in – pinch out trong Android

1 Tạo 1 file giao diện xml Android activity_main_pinch.xml

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

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginStart="156dp"
        android:layout_marginTop="78dp"
        android:src="@drawable/bigface"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

 

-------------

Bạn ơi! Mình xin lỗi vì đã chen ngang bài viết này.

Mình vừa đăng 1 video lên Youtube theo phong cách YOLO cách đây vài tiếng trong lúc dịch COVID-19 vẫn kéo dài này.

Nếu có thời gian thì xem giúp mình có ổn không nhé? Bạn có thể nhận xét video trong Youtube cũng được nha!

LINK VIDEO: https://youtu.be/kQxUIpvplYc

Nếu bận thì lưu lại xem sau và mời bạn tiếp tục đọc bài, xin lỗi vì đã làm phiền bạn 😅😅

-------------

2 Tạo 1 Activity tên là PinchImgDemo

Trong đây dùng đối tượng ScaleGestureDetector để lắng nghe sự kiện pinch in và pinch out, sau đó thì điều khiển cái ảnh ấy cho to ra hoặc nhỏ đi. Đọc để nếu không hiểu thì hỏi mình.

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.widget.ImageView;


public class PinchImgDemo extends AppCompatActivity {

    private ScaleGestureDetector mScaleGestureDetector;
    private float mScaleFactor = 1.0f;
    private ImageView mImageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_pinch);
        mImageView = findViewById(R.id.imageView);
        mScaleGestureDetector = new ScaleGestureDetector(this, new ScaleListener());
    }

    public boolean onTouchEvent(MotionEvent motionEvent) {
        mScaleGestureDetector.onTouchEvent(motionEvent);
        return true;
    }

    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector scaleGestureDetector) {
            mScaleFactor *= scaleGestureDetector.getScaleFactor();
            mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 10.0f));
            mImageView.setScaleX(mScaleFactor);
            mImageView.setScaleY(mScaleFactor);
            return true;
        }
    }

}

Hướng dẫn này lập trình trên Android 3.2 mới nhất

Các bài viết không xem thì tiếc:

《Chia sẻ kiến thức này là người hào sảng》

Thảo luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.

 
 
 
 
Facetime iPhone

Main Menu