adding a toggle for zooming

This commit is contained in:
tibbi 2018-08-26 11:57:24 +02:00
parent 4361dbaedc
commit 6554d0439c
26 changed files with 89 additions and 23 deletions

View File

@ -82,6 +82,7 @@ class MainActivity : SimpleActivity(), CanvasListener {
val isStrokeWidthBarEnabled = config.showBrushSize
stroke_width_bar.beVisibleIf(isStrokeWidthBarEnabled)
my_canvas.setIsStrokeWidthBarEnabled(isStrokeWidthBarEnabled)
my_canvas.setAllowZooming(config.allowZoomingCanvas)
updateTextColors(main_holder)
if (config.preventPhoneFromSleeping) {
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

View File

@ -25,6 +25,7 @@ class SettingsActivity : SimpleActivity() {
setupAvoidWhatsNew()
setupPreventPhoneFromSleeping()
setupBrushSize()
setupAllowZoomingCanvas()
updateTextColors(settings_holder)
}
@ -74,4 +75,12 @@ class SettingsActivity : SimpleActivity() {
config.showBrushSize = settings_show_brush_size.isChecked
}
}
private fun setupAllowZoomingCanvas() {
settings_allow_zooming_canvas.isChecked = config.allowZoomingCanvas
settings_allow_zooming_canvas_holder.setOnClickListener {
settings_allow_zooming_canvas.toggle()
config.allowZoomingCanvas = settings_allow_zooming_canvas.isChecked
}
}
}

View File

@ -28,4 +28,8 @@ class Config(context: Context) : BaseConfig(context) {
var lastSaveFolder: String
get() = prefs.getString(LAST_SAVE_FOLDER, "")
set(lastSaveFolder) = prefs.edit().putString(LAST_SAVE_FOLDER, lastSaveFolder).apply()
var allowZoomingCanvas: Boolean
get() = prefs.getBoolean(ALLOW_ZOOMING_CANVAS, true)
set(allowZoomingCanvas) = prefs.edit().putBoolean(ALLOW_ZOOMING_CANVAS, allowZoomingCanvas).apply()
}

View File

@ -5,6 +5,7 @@ const val CANVAS_BACKGROUND_COLOR = "canvas_background_color"
const val SHOW_BRUSH_SIZE = "show_brush_size"
const val BRUSH_SIZE = "brush_size"
const val LAST_SAVE_FOLDER = "last_save_folder"
const val ALLOW_ZOOMING_CANVAS = "allow_zooming_canvas"
const val PNG = "png"
const val SVG = "svg"

View File

@ -42,6 +42,7 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
private var mStartY = 0f
private var mIsSaving = false
private var mIsStrokeWidthBarEnabled = false
private var mAllowZooming = true
private var mIsEraserOn = false
private var mBackgroundColor = 0
private var mCenter: PointF? = null
@ -49,7 +50,6 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
private var mScaleDetector: ScaleGestureDetector? = null
private var mScaleFactor = 1f
init {
mPaint.apply {
color = mPaintOptions.color
@ -136,6 +136,10 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
invalidate()
}
fun setAllowZooming(allowZooming: Boolean) {
mAllowZooming = allowZooming
}
fun getBitmap(): Bitmap {
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
@ -277,7 +281,10 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
}
override fun onTouchEvent(event: MotionEvent): Boolean {
mScaleDetector!!.onTouchEvent(event)
if (mAllowZooming) {
mScaleDetector!!.onTouchEvent(event)
}
val x = event.x
val y = event.y
@ -291,7 +298,7 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
}
MotionEvent.ACTION_MOVE -> {
if (!mScaleDetector!!.isInProgress && event.pointerCount == 1) {
if (!mAllowZooming || (!mScaleDetector!!.isInProgress && event.pointerCount == 1)) {
actionMove(x, y)
}
}

View File

@ -151,5 +151,29 @@
app:switchPadding="@dimen/medium_margin"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_allow_zooming_canvas_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingBottom="@dimen/activity_margin"
android:paddingLeft="@dimen/normal_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingTop="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/settings_allow_zooming_canvas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:paddingLeft="@dimen/medium_margin"
android:paddingStart="@dimen/medium_margin"
android:text="@string/allow_zooming_canvas"
app:switchPadding="@dimen/medium_margin"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Fırça ölçüsü alətini göstər</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Təmizlə</string>
<string name="change_background_color">Arxaplan rəngini dəyiş</string>
@ -18,7 +19,7 @@
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
This app is just one piece of a bigger series of apps. You can find the rest of them at http://www.simplemobiletools.com
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Vis regulering af stregtykkelse</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Ryd</string>
<string name="change_background_color">Skift baggrundsfarve</string>
@ -18,7 +19,7 @@
Uden reklamer og unødvendige tilladelser. Den er helt igennem open source, og du kan selv bestemme farverne.
Denne app er en enkelt del af en større serie apps. Du finder dem alle på siden http://www.simplemobiletools.com
Denne app er en enkelt del af en større serie apps. Du finder dem alle på siden https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Zeige Pinselgröße</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Löschen</string>
<string name="change_background_color">Ändere Hintergrundfarbe</string>
@ -18,7 +19,7 @@
Beinhaltet keine Werbung oder unnötige Berechtigungen. Sie ist komplett Open Source, alle verwendeten Farben sind anpassbar.
Diese App ist nur eine aus einer größeren Serie von schlichten Apps. Der Rest davon findet sich auf http://www.simplemobiletools.com
Diese App ist nur eine aus einer größeren Serie von schlichten Apps. Der Rest davon findet sich auf https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Εμφάνιση του εργαλείου των διαστάσεων του πινέλου</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Καθαρισμός</string>
<string name="change_background_color">Αλλαγή του χρώματος παρασκηνίου</string>
@ -18,7 +19,7 @@
Δεν περιέχει διαφημίσεις ούτε ζητά περιττά δικαιώματα. Είναι εντελώς ανοιχτού κώδικα. Επιτρέπει προσαρμοσμένα χρώματα.
Αυτή η εφαρμογή είναι ένα κομμάτι από μία μεγαλύτερη σειρά εφαρμογών. Μπορείς να βρεις τις υπόλοιπες στο http://www.simplemobiletools.com
Αυτή η εφαρμογή είναι ένα κομμάτι από μία μεγαλύτερη σειρά εφαρμογών. Μπορείς να βρεις τις υπόλοιπες στο https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Show brush size tool</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Limpiar</string>
<string name="change_background_color">Cambiar fondo</string>
@ -18,7 +19,7 @@
No contiene anuncios ni permisos innecesarios. Es completamente OpenSource y además provee un tema oscuro.
Esta aplicación es tan solo una pequeña parte de una serie de aplicaciones. Puede encontrar el resto en http://www.simplemobiletools.com
Esta aplicación es tan solo una pequeña parte de una serie de aplicaciones. Puede encontrar el resto en https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Afficher l\'outil de sélection de la taille du pinceau</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Tout effacer</string>
<string name="change_background_color">Changer le fond</string>
@ -18,7 +19,7 @@
Pas de pubs ni de permissions inutiles. Totalement open-source et propose des couleurs personnalisables.
Cette application fait partie d\'un ensemble d\'applications. Vous pouvez trouver les autres sur http://www.simplemobiletools.com
Cette application fait partie d\'un ensemble d\'applications. Vous pouvez trouver les autres sur https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Prikaži alat za odabir veličine četkica</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Očisti</string>
<string name="change_background_color">Promjeni boju pozadine</string>
@ -18,7 +19,7 @@
Ne sadrži oglase ili nepotrebne dozvole. Aplikacije je otvorenog koda, pruža prilagodljive boje.
Ova je aplikacija samo dio većeg broja aplikacija. Možete pronaći ostatak na http://www.simplemobiletools.com
Ova je aplikacija samo dio većeg broja aplikacija. Možete pronaći ostatak na https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Dimensione gomma</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Pulisci</string>
<string name="change_background_color">Cambia colore di sfondo</string>
@ -17,7 +18,7 @@
Non contiene pubblicità né richiede permessi non necessari. È completamente open source e permette di cambiare i colori.
Quest\'app è solo un pezzo di una serie più grande di app. Puoi vedere le rimanenti su http://www.simplemobiletools.com
Quest\'app è solo un pezzo di una serie più grande di app. Puoi vedere le rimanenti su https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Show brush size tool</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">クリア</string>
<string name="change_background_color">Change background color</string>
@ -18,7 +19,7 @@
広告や不要なアクセス許可は含まれていません。 完全にオープンソースで、ダークテーマも提供しています。
このアプリは、大きな一連のアプリの一つです。 他のアプリは http://www.simplemobiletools.com で見つけることができます
このアプリは、大きな一連のアプリの一つです。 他のアプリは https://www.simplemobiletools.com で見つけることができます
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">브러쉬 크기조절 도구 활성화</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">지우기</string>
<string name="change_background_color">배경색 변경</string>
@ -18,7 +19,7 @@
광고가 포함되어 있거나, 불필요한 권한을 요청하지 않습니다. 이 앱의 모든 소스는 오픈소스이며, 사용자가 직접 애플리케이션의 컬러를 설정 할 수 있습니다.
이 앱은 다양한 시리즈의 모바일앱 중 하나입니다. 나머지는 http://www.simplemobiletools.com 에서 찾아 보실 수 있습니다.
이 앱은 다양한 시리즈의 모바일앱 중 하나입니다. 나머지는 https://www.simplemobiletools.com 에서 찾아 보실 수 있습니다.
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Rodyti teptuko dydžio įrankį</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Išvalyti</string>
<string name="change_background_color">Pakeisti fono spalvą</string>
@ -18,7 +19,7 @@
Neturi reklamų ar nereikalingų leidimų. Programėlė visiškai atviro kodo, yra galimybė keisti spalvas.
Ši programėle yra vienintelė iš keletos mūsų programėlių. Likusias Jūs galite rasti čia http://www.simplemobiletools.com
Ši programėle yra vienintelė iš keletos mūsų programėlių. Likusias Jūs galite rasti čia https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Vis penselstørrelsesverktøy</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Slett</string>
<string name="change_background_color">Endre bakgrunnsfarge</string>
@ -18,7 +19,7 @@
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
This app is just one piece of a bigger series of apps. You can find the rest of them at http://www.simplemobiletools.com
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Pokaż narzędzie rozmiaru pędzla</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Wyczyść</string>
<string name="change_background_color">Zmień kolor tła</string>
@ -18,7 +19,7 @@
Aplikacja nie zawiera żadnych żadnych reklam i nie potrzebuje masy uprawnień. Jest w pełni otwartoźródłowa. Posiada ciemny motyw dla osób z wrażliwymi oczami.
Niniejsza aplikacja jest tylko częścią naszej kolekcji prostych narzędzi. Ta, jak i pozostałe, dostępne są na stronie http://www.simplemobiletools.com
Niniejsza aplikacja jest tylko częścią naszej kolekcji prostych narzędzi. Ta, jak i pozostałe, dostępne są na stronie https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Mostrar ferramenta Tamanho do pincel</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Limpar</string>
<string name="change_background_color">Alterar fundo</string>
@ -18,7 +19,7 @@
Não contém anúncios nem permissões desnecessárias. Disponibiliza um tema escuro e é totalmente \'open source\'.
Esta aplicação é apenas parte de um conjunto mais vasto de aplicações. Saiba mais em http://www.simplemobiletools.com
Esta aplicação é apenas parte de um conjunto mais vasto de aplicações. Saiba mais em https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Позволить изменять размер кисти</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Очистить</string>
<string name="change_background_color">Изменить цвет фона</string>
@ -18,7 +19,7 @@
Без рекламы и излишних прав доступа. Полностью открытое ПО, а также есть тёмная тема интерфейса.
Это только одно приложение из множества других в серии. Вы можете найти остальные на http://www.simplemobiletools.com
Это только одно приложение из множества других в серии. Вы можете найти остальные на https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Zobraziť menič veľkosti štetca</string>
<string name="allow_zooming_canvas">Povoliť približovanie plátna</string>
<string name="clear">Vymazať</string>
<string name="change_background_color">Zmeniť farbu pozadia</string>
@ -18,7 +19,7 @@
Neobsahuje žiadne reklamy a nepotrebné oprávnenia. Je opensource, poskytuje možnosť zmeny farieb.
Táto aplikácia je iba jednou zo skupiny aplikácií. Ostatné viete nájsť na http://www.simplemobiletools.com
Táto aplikácia je iba jednou zo skupiny aplikácií. Ostatné viete nájsť na https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Visa penselstorleksverktyg</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Rensa</string>
<string name="change_background_color">Ändra bakgrundsfärg</string>
@ -18,7 +19,7 @@
Innehåller ingen reklam eller onödiga behörigheter. Den har helt öppen källkod och anpassningsbara färger.
Denna app är bara en del av en större serie appar. Du hittar resten av dem på http://www.simplemobiletools.com
Denna app är bara en del av en större serie appar. Du hittar resten av dem på https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">显示笔刷尺寸工具</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">清除</string>
<string name="change_background_color">改变背景颜色</string>
@ -18,7 +19,7 @@
不包含广告及非必要权限,完全开源,并提供自定义颜色。
此应用只是一系列应用中的一项,你可以在这里找到其他应用 http://www.simplemobiletools.com
此应用只是一系列应用中的一项,你可以在这里找到其他应用 https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">顯示畫筆尺寸工具</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">清除</string>
<string name="change_background_color">改變背景顏色</string>
@ -18,7 +19,7 @@
不包含廣告及非必要的權限,而且完全開放原始碼,並提供自訂顏色。
這程式只是一系列眾多應用程式的其中一項,你可以在這發現更多 http://www.simplemobiletools.com
這程式只是一系列眾多應用程式的其中一項,你可以在這發現更多 https://www.simplemobiletools.com
</string>
<!--

View File

@ -7,6 +7,7 @@
<!-- Settings -->
<string name="show_brush_size">Show brush size tool</string>
<string name="allow_zooming_canvas">Allow zooming the canvas</string>
<string name="clear">Clear</string>
<string name="change_background_color">Change background color</string>
@ -18,7 +19,7 @@
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
This app is just one piece of a bigger series of apps. You can find the rest of them at http://www.simplemobiletools.com
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
</string>
<!--