Bonjour
S'il vous plait
Je vous mets mon code. J'ai donc bien réussi le zoom par pincement mais il ne zoome que sur un point et je ne peux déplacer le zoom sur tout le texte.
Merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import  android.content.Context ;
import androidx.annotation.NonNull;
import  android.util.AttributeSet ;
import  android.util.Log ;
import  android.util.TypedValue ;
import  android.view.MotionEvent ;
import  android.view.ScaleGestureDetector ;
import android.widget.TextView;
 
public class ZoomTextView extends androidx.appcompat.widget.AppCompatTextView {
    private static final String TAG = "ZoomTextView";
    private ScaleGestureDetector mScaleDetector;
 
    private float mScaleFactor = 1.f;
    private float defaultSize;
 
    private float zoomLimit = 3.0f;
 
 
    public ZoomTextView(Context context) {
        super(context);
        initialize();
    }
 
    public ZoomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initialize();
    }
 
    public ZoomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initialize();
    }
 
    private void initialize() {
        defaultSize = getTextSize();
        mScaleDetector = new ScaleGestureDetector(getContext(), new ScaleListener());
 
    }
 
 
    public void setZoomLimit(float zoomLimit) {
        this.zoomLimit = zoomLimit;
    }
 
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
 
    @Override
    public boolean onTouchEvent(@NonNull MotionEvent ev) {
        super.onTouchEvent(ev);
        mScaleDetector.onTouchEvent(ev);
        return true;
    }
 
    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            mScaleFactor *= detector.getScaleFactor();
            mScaleFactor = Math.max(1.0f, Math.min(mScaleFactor, zoomLimit));
            setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultSize * mScaleFactor);
            Log.e(TAG, String.valueOf(mScaleFactor));
            return true;
        }
    }
}