पर अजीब काम करता है मुझे पता चला कि setPivotX
(setPivotY
) एंड्रॉइड में अजीब काम करता है। यदि आप दृश्य स्केल को 1.00f पर सेट करते समय पिवट सेट करते हैं तो कुछ भी नहीं होता है (केवल पिवट परिवर्तन)। लेकिन यदि स्केल 1.0f के बराबर नहीं है (उदा। setScaleX(0.9f)
) और आप पिवट सेट करते हैं तो दृश्य अपेक्षाकृत (?) को नए पिवट पर ले जाता है। क्या यह अजीब नहीं है? मुझे पता है कि क्षैतिज और लंबवत स्थितियां (अनुवाद) पिवट मूल्य से संबंधित नहीं हैं, लेकिन दृश्य 1.0f के अलावा स्केल कारक के साथ क्यों चलता है?setPivotX स्केल किए गए दृश्य
कृपया इसे स्केलिंग भाग के साथ और बिना जांचें।
public class ScaleView extends View {
private final ScaleGestureDetector mScaleGestureDetector;
public ScaleView(Context context, AttributeSet attrs) {
super(context, attrs);
//setScaleX(0.9f);
//setScaleY(0.9f);
mScaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.OnScaleGestureListener() {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
// does nothing intentionally
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
setPivotX(detector.getFocusX());
setPivotY(detector.getFocusY());
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
मैं दृश्य की एक ही स्थिति कैसे सेट करूं, जो पिवट बदलने से पहले था?
यह मेरे लिए एंड्रॉइड में एक बग जैसा लगता है। एक पिवट बिंदु के बारे में स्केलिंग पिवट को अनुवाद करके, पैमाने का प्रदर्शन करके और वापस अनुवाद करके किया जाता है। 'सेटस्केले' संचालन यह करना चाहिए, और दृश्य को चारों ओर कूदना नहीं चाहिए। स्केलिंग एक ऐसा ऑपरेशन है जो दृश्यमान रूप से दृश्यों का अनुवाद नहीं करना चाहिए। –
हाय, मैंने एक ही समस्या पर ठोकर खाई है और इसे आपके उत्तर के साथ ठीक करने में सक्षम था। हालांकि, मुझे अभी भी आश्चर्य है, पायलट स्केल किए गए विचारों पर कैसे काम करता है। क्या आप कुछ दिशानिर्देश, या शायद एक लिंक प्रदान कर सकते हैं? अग्रिम धन्यवाद। – aleien
@aleien क्षमा करें मैं आपकी मदद नहीं कर सकता, मुझे नहीं लगता कि पिवट बिंदुओं का उपयोग करके विचारों को स्केल करने के बारे में कोई दिशानिर्देश है। – tomrozb