Bir dizi dikdörtgen çizen uzun onDraw
yöntemini uyguladık. Dikdörtgenler çok küçük ve ben daha büyük görünmelerini istiyorum. Ama ne yazık ki bir veritabanı içinde saklandıkları için dikdörtgen koordinatlarını değiştiremiyorum. Yani canvas.scale()
kullanarak tuvali yakınlaştırabilir miyim?Canvas.scale işlevini kullanarak bir tuvali yakınlaştırın.
cevap
Bu cevabı, 0,05 herşeyi çizmeniz ve daha sonra ölçeklendirmeniz ve son olarak uygun şekilde davranması için çevirmeniz gerektiğini söyleyerek başlayacağım.
Basitçe onDraw yönteminde aşağıdakileri yapın:
canvas.save();
canvas.translate(xValue, yValue);
canvas.scale(xScale, yScale)
/* draw whatever you want scaled at 0,0*/
canvas.restore();
xScale küçülür veya X yönünde uzanıyor, yScale Y yönünde küçülür veya uzanıyor.
1.0 bunlar için varsayılan değerdir, bu yüzden 2.0 çift tarafından gerilir ve 0,5 oranında küçülür.
Örnek:
canvas.save();
canvas.translate(50, 50);
canvas.scale(0.5f, 0.5f);
canvas.drawRect(0.0, 0.0, 5.0, 5.0, paint);
canvas.restore();
Bu, uzunluk 5.0 ve 5.0 genişlikte bir dikdörtgen çizin uzunluk ve genişlik için 2.5 aşağı inin, ve sonra, (50, 50) için hareket edecektir. Bunu yapan sanki
sonuç bir dikdörtgen çekilecek:
canvas.drawRect(50.0, 50.0, 52.5, 52.5, paint);
umarım bu yardımcı olur!
ancak farklı çözünürlük aygıtlarında farklı bir işlev davranışı ölçeklendirin. Piksellerden bahsederken, – zionpi
ölçeği çözünürlükten etkilenmez. –
Burada herhangi bir kimse web için çözüm aramaya gelecektir (ben yaptım =). İşte örnek kod revize edildi: 'context.translate (50, 50); context.scale (0.5, 0.5); context.fillRect (0.0, 0.0, 5.0, 5.0); ' –
- 1. WPF'de sürüklenebilir tuvali 'Thumb' Kullanarak
- 2. Android canvas.scale (-1,1)
- 3. Tuvali kullanarak anahat şeffaf bir görüntünün arkasına çizim inme?
- 4. WPF'de bitmapi tuvali nasıl oluşturulur?
- 5. Başlatma işlevini kullanarak Xpath
- 6. jsp'yi kullanarak bir javascript işlevini çağırırken sorun
- 7. Harita işlevini kullanarak bir listeye nasıl eklenir?
- 8. Bir html tuvali süresiz nasıl "kaydır" yapabilirim?
- 9. dwscript kullanarak CreateOleObject işlevini çağırma?
- 10. Android: ekranın ortasındaki tuvali döndürün
- 11. PostgreSQL bir json işlevini
- 12. Tuvali resim olarak Firebase deposuna nasıl kaydedebilirim?
- 13. cscope, işlevsellik gibi C++ (işlevini kullanarak)
- 14. Node işlevini kullanarak MongoDb'deki dizinin güncellenmesi çalışmıyor.
- 15. Ruteprovider işlevini çağırma (çözüm kullanarak değil)
- 16. shell_exec işlevini kullanarak kullanıcı şifresini değiştirin
- 17. Gitmek için kdiff3 işlevini kullanarak git…
- 18. unary & operator işlevini kullanarak dönüş değeri
- 19. Kod çözme işlevini kullanarak Oracle'da tarihlerin karşılaştırılması
- 20. Derailed_benchmarks gem işlevini kullanarak hatalı istek hatası
- 21. Braket gösterimini kullanarak üye işlevini nasıl çağırabilirim?
- 22. Pencere ile vba kullanarak findwindow işlevini kullanarak pencere nasıl bulunur?
- 23. Android'de Path.arcTo() işlevini kullanarak bir halka çizmede garip davranış
- 24. Dizenin bir bölümünü tsql'deki değiştirme işlevini kullanarak nasıl güncellerim?
- 25. java servlet başka bir java servlet işlevini kullanarak?
- 26. Bir fonksiyonun sonucunu onclick işlevini kullanarak göstermeye çalışıyorum. (Javascript)
- 27. İşlev argümanında sarıcı işlevini kullanarak bir işaretçi işlevi nasıl iletilir?
- 28. Excel 2013: Search() - işlevini bir tablo sütunu kullanarak kullanma?
- 29. ASP.NET MVC'de Html.Action() işlevini kullanarak bir eyleme parametreleri nasıl geçirebilirim?
- 30. ArrayList # include() işlevini kullanarak farklı bir değer elde edin
"Ancak maalesef bir veritabanında saklandıkları dikdörtgen koordinatlarını değiştiremiyorum" Neden? DB'den koordinatları alırsınız ve drawRectangle() 'dan önce ihtiyacınız olan ölçek faktörüyle çarpın. – Simon
Bu şekilde bir zoom işlevi uygulayabilir miyim? – Ruby
x = getValueFromDatabase(), y = getValueFromDatabase(), x = x * 5; y = y * 5; DrawRectangle (x, y). Böyle bir şeyin nesi var? Benim amacım, bir veritabanında saklanan değerlerin neden dikdörtgeni daha büyük çiziyorsunuz? Anlamadım. Elbette dikdörtgen koordinatlarını değiştirebilirsiniz. Onlara istediğin her şeyi yapabilirsin. – Simon