Merge pull request #39 from BrianPinsard/master
Implement changing brush size (saves in preferences)
This commit is contained in:
commit
f77edd5e64
|
@ -31,6 +31,14 @@ public class Config {
|
||||||
mPrefs.edit().putBoolean(Constants.IS_DARK_THEME, isDarkTheme).apply();
|
mPrefs.edit().putBoolean(Constants.IS_DARK_THEME, isDarkTheme).apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getIsStrokeWidthBarEnabled() {
|
||||||
|
return mPrefs.getBoolean(Constants.IS_STROKE_WIDTH_BAR_ENABLED, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsStrokeWidthBarEnabled(boolean isStrokeWidthBarEnabled) {
|
||||||
|
mPrefs.edit().putBoolean(Constants.IS_STROKE_WIDTH_BAR_ENABLED, isStrokeWidthBarEnabled).apply();
|
||||||
|
}
|
||||||
|
|
||||||
public int getBrushColor() {
|
public int getBrushColor() {
|
||||||
return mPrefs.getInt(Constants.BRUSH_COLOR_KEY, Color.BLACK);
|
return mPrefs.getInt(Constants.BRUSH_COLOR_KEY, Color.BLACK);
|
||||||
}
|
}
|
||||||
|
@ -39,6 +47,14 @@ public class Config {
|
||||||
mPrefs.edit().putInt(Constants.BRUSH_COLOR_KEY, color).apply();
|
mPrefs.edit().putInt(Constants.BRUSH_COLOR_KEY, color).apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getStrokeWidth() {
|
||||||
|
return mPrefs.getFloat(Constants.STROKE_WIDTH_KEY, 5.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStrokeWidth(float strokeWidth) {
|
||||||
|
mPrefs.edit().putFloat(Constants.STROKE_WIDTH_KEY, strokeWidth).apply();
|
||||||
|
}
|
||||||
|
|
||||||
public int getBackgroundColor() {
|
public int getBackgroundColor() {
|
||||||
return mPrefs.getInt(Constants.BACKGROUND_COLOR_KEY, Color.WHITE);
|
return mPrefs.getInt(Constants.BACKGROUND_COLOR_KEY, Color.WHITE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@ public class Constants {
|
||||||
// shared preferences
|
// shared preferences
|
||||||
public static final String PREFS_KEY = "Draw";
|
public static final String PREFS_KEY = "Draw";
|
||||||
public static final String BRUSH_COLOR_KEY = "brush_color";
|
public static final String BRUSH_COLOR_KEY = "brush_color";
|
||||||
|
public static final String STROKE_WIDTH_KEY = "stroke_width";
|
||||||
public static final String BACKGROUND_COLOR_KEY = "background_color";
|
public static final String BACKGROUND_COLOR_KEY = "background_color";
|
||||||
public static final String IS_FIRST_RUN = "is_first_run";
|
public static final String IS_FIRST_RUN = "is_first_run";
|
||||||
public static final String IS_DARK_THEME = "is_dark_theme";
|
public static final String IS_DARK_THEME = "is_dark_theme";
|
||||||
|
public static final String IS_STROKE_WIDTH_BAR_ENABLED = "is_stroke_width_bar_enabled";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simplemobiletools.draw;
|
package com.simplemobiletools.draw;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
|
@ -17,29 +18,32 @@ import java.util.Map;
|
||||||
public class MyCanvas extends View {
|
public class MyCanvas extends View {
|
||||||
private Paint mPaint;
|
private Paint mPaint;
|
||||||
private MyPath mPath;
|
private MyPath mPath;
|
||||||
private Map<MyPath, Integer> mPaths;
|
private Map<MyPath, PaintOptions> mPaths;
|
||||||
private PathsChangedListener mListener;
|
private PathsChangedListener mListener;
|
||||||
|
|
||||||
private int mColor;
|
private PaintOptions mPaintOptions;
|
||||||
private float mCurX;
|
private float mCurX;
|
||||||
private float mCurY;
|
private float mCurY;
|
||||||
private float mStartX;
|
private float mStartX;
|
||||||
private float mStartY;
|
private float mStartY;
|
||||||
|
private boolean mIsSaving = false;
|
||||||
|
private boolean mIsStrokeWidthBarEnabled = false;
|
||||||
|
|
||||||
public MyCanvas(Context context, AttributeSet attrs) {
|
public MyCanvas(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
|
||||||
mPath = new MyPath();
|
mPath = new MyPath();
|
||||||
mPaint = new Paint();
|
mPaint = new Paint();
|
||||||
mPaint.setColor(Color.BLACK);
|
mPaintOptions = new PaintOptions();
|
||||||
|
mPaint.setColor(mPaintOptions.color);
|
||||||
mPaint.setStyle(Paint.Style.STROKE);
|
mPaint.setStyle(Paint.Style.STROKE);
|
||||||
mPaint.setStrokeJoin(Paint.Join.ROUND);
|
mPaint.setStrokeJoin(Paint.Join.ROUND);
|
||||||
mPaint.setStrokeCap(Paint.Cap.ROUND);
|
mPaint.setStrokeCap(Paint.Cap.ROUND);
|
||||||
mPaint.setStrokeWidth(5f);
|
mPaint.setStrokeWidth(mPaintOptions.strokeWidth);
|
||||||
mPaint.setAntiAlias(true);
|
mPaint.setAntiAlias(true);
|
||||||
|
|
||||||
mPaths = new LinkedHashMap<>();
|
mPaths = new LinkedHashMap<>();
|
||||||
mPaths.put(mPath, mPaint.getColor());
|
mPaths.put(mPath, mPaintOptions);
|
||||||
pathsUpdated();
|
pathsUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,14 +66,31 @@ public class MyCanvas extends View {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColor(int newColor) {
|
public void setColor(int newColor) {
|
||||||
mColor = newColor;
|
mPaintOptions.color = newColor;
|
||||||
|
if (mIsStrokeWidthBarEnabled) {
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStrokeWidth(float newStrokeWidth) {
|
||||||
|
mPaintOptions.strokeWidth = newStrokeWidth;
|
||||||
|
if (mIsStrokeWidthBarEnabled) {
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsStrokeWidthBarEnabled(boolean isStrokeWidthBarEnabled) {
|
||||||
|
mIsStrokeWidthBarEnabled = isStrokeWidthBarEnabled;
|
||||||
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bitmap getBitmap() {
|
public Bitmap getBitmap() {
|
||||||
final Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
|
final Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
|
||||||
final Canvas canvas = new Canvas(bitmap);
|
final Canvas canvas = new Canvas(bitmap);
|
||||||
canvas.drawColor(Color.WHITE);
|
canvas.drawColor(Color.WHITE);
|
||||||
|
mIsSaving = true;
|
||||||
draw(canvas);
|
draw(canvas);
|
||||||
|
mIsSaving = false;
|
||||||
return bitmap;
|
return bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,13 +98,31 @@ public class MyCanvas extends View {
|
||||||
protected void onDraw(Canvas canvas) {
|
protected void onDraw(Canvas canvas) {
|
||||||
super.onDraw(canvas);
|
super.onDraw(canvas);
|
||||||
|
|
||||||
for (Map.Entry<MyPath, Integer> entry : mPaths.entrySet()) {
|
for (Map.Entry<MyPath, PaintOptions> entry : mPaths.entrySet()) {
|
||||||
mPaint.setColor(entry.getValue());
|
changePaint(entry.getValue());
|
||||||
canvas.drawPath(entry.getKey(), mPaint);
|
canvas.drawPath(entry.getKey(), mPaint);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPaint.setColor(mColor);
|
changePaint(mPaintOptions);
|
||||||
canvas.drawPath(mPath, mPaint);
|
canvas.drawPath(mPath, mPaint);
|
||||||
|
|
||||||
|
if (mIsStrokeWidthBarEnabled && !mIsSaving) {
|
||||||
|
drawPreviewDot(canvas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawPreviewDot(Canvas canvas) {
|
||||||
|
Resources res = getResources();
|
||||||
|
mPaint.setColor(Utils.shouldUseWhite(mPaintOptions.color) ? Color.WHITE : Color.BLACK);
|
||||||
|
mPaint.setStrokeWidth(mPaintOptions.strokeWidth + res.getDimension(R.dimen.preview_dot_stroke_size));
|
||||||
|
canvas.drawPoint(getWidth() / 2, getHeight() - res.getDimension(R.dimen.preview_dot_offset_y), mPaint);
|
||||||
|
changePaint(mPaintOptions);
|
||||||
|
canvas.drawPoint(getWidth() / 2, getHeight() - res.getDimension(R.dimen.preview_dot_offset_y), mPaint);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changePaint(PaintOptions paintOptions) {
|
||||||
|
mPaint.setColor(paintOptions.color);
|
||||||
|
mPaint.setStrokeWidth(paintOptions.strokeWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clearCanvas() {
|
public void clearCanvas() {
|
||||||
|
@ -116,9 +155,10 @@ public class MyCanvas extends View {
|
||||||
mPath.lineTo(mCurX + 1, mCurY);
|
mPath.lineTo(mCurX + 1, mCurY);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPaths.put(mPath, mPaint.getColor());
|
mPaths.put(mPath, mPaintOptions);
|
||||||
pathsUpdated();
|
pathsUpdated();
|
||||||
mPath = new MyPath();
|
mPath = new MyPath();
|
||||||
|
mPaintOptions = new PaintOptions(mPaintOptions.color, mPaintOptions.strokeWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void pathsUpdated() {
|
private void pathsUpdated() {
|
||||||
|
@ -179,7 +219,7 @@ public class MyCanvas extends View {
|
||||||
}
|
}
|
||||||
|
|
||||||
static class SavedState extends BaseSavedState {
|
static class SavedState extends BaseSavedState {
|
||||||
Map<MyPath, Integer> mPaths;
|
Map<MyPath, PaintOptions> mPaths;
|
||||||
|
|
||||||
SavedState(Parcelable superState) {
|
SavedState(Parcelable superState) {
|
||||||
super(superState);
|
super(superState);
|
||||||
|
@ -189,9 +229,11 @@ public class MyCanvas extends View {
|
||||||
public void writeToParcel(Parcel out, int flags) {
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
super.writeToParcel(out, flags);
|
super.writeToParcel(out, flags);
|
||||||
out.writeInt(mPaths.size());
|
out.writeInt(mPaths.size());
|
||||||
for (Map.Entry<MyPath, Integer> entry : mPaths.entrySet()) {
|
for (Map.Entry<MyPath, PaintOptions> entry : mPaths.entrySet()) {
|
||||||
out.writeSerializable(entry.getKey());
|
out.writeSerializable(entry.getKey());
|
||||||
out.writeInt(entry.getValue());
|
PaintOptions paintOptions = entry.getValue();
|
||||||
|
out.writeInt(paintOptions.color);
|
||||||
|
out.writeFloat(paintOptions.strokeWidth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,8 +253,8 @@ public class MyCanvas extends View {
|
||||||
int size = in.readInt();
|
int size = in.readInt();
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
MyPath key = (MyPath) in.readSerializable();
|
MyPath key = (MyPath) in.readSerializable();
|
||||||
int value = in.readInt();
|
PaintOptions paintOptions = new PaintOptions(in.readInt(), in.readFloat());
|
||||||
mPaths.put(key, value);
|
mPaths.put(key, paintOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.simplemobiletools.draw;
|
||||||
|
|
||||||
|
import android.graphics.Color;
|
||||||
|
|
||||||
|
class PaintOptions {
|
||||||
|
int color = Color.BLACK;
|
||||||
|
float strokeWidth = 5f;
|
||||||
|
|
||||||
|
PaintOptions() {
|
||||||
|
//Empty constructor for instantiating with default values
|
||||||
|
}
|
||||||
|
|
||||||
|
PaintOptions(int color, float strokeWidth) {
|
||||||
|
this.color = color;
|
||||||
|
this.strokeWidth = strokeWidth;
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,6 +19,7 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.SeekBar;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.simplemobiletools.draw.Config;
|
import com.simplemobiletools.draw.Config;
|
||||||
|
@ -46,10 +47,12 @@ public class MainActivity extends SimpleActivity implements MyCanvas.PathsChange
|
||||||
@BindView(R.id.my_canvas) MyCanvas mMyCanvas;
|
@BindView(R.id.my_canvas) MyCanvas mMyCanvas;
|
||||||
@BindView(R.id.undo) View mUndoBtn;
|
@BindView(R.id.undo) View mUndoBtn;
|
||||||
@BindView(R.id.color_picker) View mColorPicker;
|
@BindView(R.id.color_picker) View mColorPicker;
|
||||||
|
@BindView(R.id.stroke_width_bar) SeekBar mStrokeWidthBar;
|
||||||
|
|
||||||
private String curFileName;
|
private String curFileName;
|
||||||
|
|
||||||
private int color;
|
private int color;
|
||||||
|
private float strokeWidth;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -57,15 +60,29 @@ public class MainActivity extends SimpleActivity implements MyCanvas.PathsChange
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
mMyCanvas.setListener(this);
|
mMyCanvas.setListener(this);
|
||||||
|
mStrokeWidthBar.setOnSeekBarChangeListener(onStrokeWidthBarChangeListener);
|
||||||
|
|
||||||
setBackgroundColor(mConfig.getBackgroundColor());
|
setBackgroundColor(mConfig.getBackgroundColor());
|
||||||
setColor(mConfig.getBrushColor());
|
setColor(mConfig.getBrushColor());
|
||||||
|
|
||||||
|
float savedStrokeWidth = mConfig.getStrokeWidth();
|
||||||
|
mMyCanvas.setStrokeWidth(savedStrokeWidth);
|
||||||
|
mStrokeWidthBar.setProgress((int) savedStrokeWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
boolean isStrokeWidthBarEnabled = mConfig.getIsStrokeWidthBarEnabled();
|
||||||
|
mStrokeWidthBar.setVisibility(isStrokeWidthBarEnabled ? View.VISIBLE : View.GONE);
|
||||||
|
mMyCanvas.setIsStrokeWidthBarEnabled(isStrokeWidthBarEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
mConfig.setBrushColor(color);
|
mConfig.setBrushColor(color);
|
||||||
|
mConfig.setStrokeWidth(strokeWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -290,4 +307,18 @@ public class MainActivity extends SimpleActivity implements MyCanvas.PathsChange
|
||||||
public void pathsChanged(int cnt) {
|
public void pathsChanged(int cnt) {
|
||||||
mUndoBtn.setVisibility(cnt > 0 ? View.VISIBLE : View.GONE);
|
mUndoBtn.setVisibility(cnt > 0 ? View.VISIBLE : View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SeekBar.OnSeekBarChangeListener onStrokeWidthBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||||
|
mMyCanvas.setStrokeWidth(progress);
|
||||||
|
strokeWidth = progress;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartTrackingTouch(SeekBar seekBar) { }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStopTrackingTouch(SeekBar seekBar) { }
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import butterknife.OnClick;
|
||||||
|
|
||||||
public class SettingsActivity extends SimpleActivity {
|
public class SettingsActivity extends SimpleActivity {
|
||||||
@BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch;
|
@BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch;
|
||||||
|
@BindView(R.id.settings_brush_size) SwitchCompat mBrushSizeSwitch;
|
||||||
|
|
||||||
private static Config mConfig;
|
private static Config mConfig;
|
||||||
|
|
||||||
|
@ -23,11 +24,12 @@ public class SettingsActivity extends SimpleActivity {
|
||||||
mConfig = Config.newInstance(getApplicationContext());
|
mConfig = Config.newInstance(getApplicationContext());
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
setupDarkTheme();
|
setupSwitches();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupDarkTheme() {
|
private void setupSwitches() {
|
||||||
mDarkThemeSwitch.setChecked(mConfig.getIsDarkTheme());
|
mDarkThemeSwitch.setChecked(mConfig.getIsDarkTheme());
|
||||||
|
mBrushSizeSwitch.setChecked(mConfig.getIsStrokeWidthBarEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.settings_dark_theme_holder)
|
@OnClick(R.id.settings_dark_theme_holder)
|
||||||
|
@ -37,6 +39,12 @@ public class SettingsActivity extends SimpleActivity {
|
||||||
restartActivity();
|
restartActivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OnClick(R.id.settings_brush_size_holder)
|
||||||
|
public void handleBrushSize() {
|
||||||
|
mBrushSizeSwitch.setChecked(!mBrushSizeSwitch.isChecked());
|
||||||
|
mConfig.setIsStrokeWidthBarEnabled(mBrushSizeSwitch.isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
private void restartActivity() {
|
private void restartActivity() {
|
||||||
TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
|
TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,15 @@
|
||||||
android:src="@mipmap/undo_black"
|
android:src="@mipmap/undo_black"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
<SeekBar
|
||||||
|
android:id="@+id/stroke_width_bar"
|
||||||
|
android:layout_width="@dimen/stroke_bar_size"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:progress="5"
|
||||||
|
android:max="75"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_marginBottom="9dp"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -36,5 +36,31 @@
|
||||||
android:clickable="false"/>
|
android:clickable="false"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/settings_brush_size_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/settings_padding"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/settings_brush_size_label"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:paddingLeft="@dimen/settings_padding"
|
||||||
|
android:text="@string/brush_size"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.SwitchCompat
|
||||||
|
android:id="@+id/settings_brush_size"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:background="@null"
|
||||||
|
android:clickable="false"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Einstellungen</string>
|
<string name="settings">Einstellungen</string>
|
||||||
<string name="dark_theme">Dunkles Design</string>
|
<string name="dark_theme">Dunkles Design</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Leeren</string>
|
<string name="clear">Leeren</string>
|
||||||
<string name="change_background">Change background</string>
|
<string name="change_background">Change background</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Ajustes</string>
|
<string name="settings">Ajustes</string>
|
||||||
<string name="dark_theme">Tema oscuro</string>
|
<string name="dark_theme">Tema oscuro</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Limpiar</string>
|
<string name="clear">Limpiar</string>
|
||||||
<string name="change_background">Cambiar fondo</string>
|
<string name="change_background">Cambiar fondo</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Paramètres</string>
|
<string name="settings">Paramètres</string>
|
||||||
<string name="dark_theme">Thème sombre</string>
|
<string name="dark_theme">Thème sombre</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Tout effacer</string>
|
<string name="clear">Tout effacer</string>
|
||||||
<string name="change_background">Changer le fond</string>
|
<string name="change_background">Changer le fond</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Impostazioni</string>
|
<string name="settings">Impostazioni</string>
|
||||||
<string name="dark_theme">Tema scuro</string>
|
<string name="dark_theme">Tema scuro</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Clear</string>
|
<string name="clear">Clear</string>
|
||||||
<string name="change_background">Change background</string>
|
<string name="change_background">Change background</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">設定</string>
|
<string name="settings">設定</string>
|
||||||
<string name="dark_theme">ダークテーマ</string>
|
<string name="dark_theme">ダークテーマ</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">クリア</string>
|
<string name="clear">クリア</string>
|
||||||
<string name="change_background">Change background</string>
|
<string name="change_background">Change background</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Definições</string>
|
<string name="settings">Definições</string>
|
||||||
<string name="dark_theme">Tema escuro</string>
|
<string name="dark_theme">Tema escuro</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Limpar</string>
|
<string name="clear">Limpar</string>
|
||||||
<string name="change_background">Alterar fundo</string>
|
<string name="change_background">Alterar fundo</string>
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Inställningar</string>
|
<string name="settings">Inställningar</string>
|
||||||
<string name="dark_theme">Mörkt tema</string>
|
<string name="dark_theme">Mörkt tema</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Clear</string>
|
<string name="clear">Clear</string>
|
||||||
<string name="change_background">Change background</string>
|
<string name="change_background">Change background</string>
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
<dimen name="social_padding">8dp</dimen>
|
<dimen name="social_padding">8dp</dimen>
|
||||||
<dimen name="social_logo">40dp</dimen>
|
<dimen name="social_logo">40dp</dimen>
|
||||||
<dimen name="settings_padding">8dp</dimen>
|
<dimen name="settings_padding">8dp</dimen>
|
||||||
|
<dimen name="stroke_bar_size">150dp</dimen>
|
||||||
|
<dimen name="preview_dot_stroke_size">2dp</dimen>
|
||||||
|
<dimen name="preview_dot_offset_y">50dp</dimen>
|
||||||
|
|
||||||
<dimen name="normal_text_size">14sp</dimen>
|
<dimen name="normal_text_size">14sp</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Settings</string>
|
<string name="settings">Settings</string>
|
||||||
<string name="dark_theme">Dark theme</string>
|
<string name="dark_theme">Dark theme</string>
|
||||||
|
<string name="brush_size">Show brush size tool</string>
|
||||||
<string name="clear">Clear</string>
|
<string name="clear">Clear</string>
|
||||||
<string name="change_background">Change background</string>
|
<string name="change_background">Change background</string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue