kopia lustrzana https://github.com/olgamiller/SSTVEncoder2
Edit text color in color dialog (as outline color)
rodzic
605a34b5d3
commit
24c5c1804b
|
@ -33,16 +33,24 @@ public class ColorFragment extends DialogFragment
|
||||||
|
|
||||||
public interface OnColorSelectedListener {
|
public interface OnColorSelectedListener {
|
||||||
void onColorSelected(DialogFragment fragment, int color);
|
void onColorSelected(DialogFragment fragment, int color);
|
||||||
|
|
||||||
|
void onCancel(DialogFragment fragment);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<OnColorSelectedListener> mListeners;
|
private List<OnColorSelectedListener> mListeners;
|
||||||
|
private int mTitle;
|
||||||
private int mColor;
|
private int mColor;
|
||||||
|
|
||||||
public ColorFragment() {
|
public ColorFragment() {
|
||||||
mListeners = new ArrayList<>();
|
mListeners = new ArrayList<>();
|
||||||
|
mTitle = R.string.color;
|
||||||
mColor = Color.WHITE;
|
mColor = Color.WHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTitle(int title) {
|
||||||
|
mTitle = title;
|
||||||
|
}
|
||||||
|
|
||||||
public void setColor(int color) {
|
public void setColor(int color) {
|
||||||
mColor = color;
|
mColor = color;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +67,7 @@ public class ColorFragment extends DialogFragment
|
||||||
ColorPaletteView colorView = (ColorPaletteView) view.findViewById(R.id.select_color);
|
ColorPaletteView colorView = (ColorPaletteView) view.findViewById(R.id.select_color);
|
||||||
colorView.setColor(mColor);
|
colorView.setColor(mColor);
|
||||||
colorView.addOnColorSelectedListener(this);
|
colorView.addOnColorSelectedListener(this);
|
||||||
builder.setTitle(R.string.outline_color);
|
builder.setTitle(mTitle);
|
||||||
builder.setView(view);
|
builder.setView(view);
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
@ -77,6 +85,8 @@ public class ColorFragment extends DialogFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCancel(View v) {
|
public void onCancel(View v) {
|
||||||
|
for (OnColorSelectedListener listener : mListeners)
|
||||||
|
listener.onCancel(this);
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,23 +25,28 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import om.sstvencoder.ColorPalette.ColorPaletteView;
|
|
||||||
import om.sstvencoder.TextOverlay.Label;
|
import om.sstvencoder.TextOverlay.Label;
|
||||||
|
|
||||||
public class EditTextActivity extends AppCompatActivity
|
public class EditTextActivity extends AppCompatActivity
|
||||||
implements AdapterView.OnItemSelectedListener, ColorFragment.OnColorSelectedListener {
|
implements AdapterView.OnItemSelectedListener, ColorFragment.OnColorSelectedListener {
|
||||||
|
|
||||||
|
private enum EditColorMode {
|
||||||
|
None,
|
||||||
|
Text,
|
||||||
|
Outline
|
||||||
|
}
|
||||||
|
|
||||||
public static final int REQUEST_CODE = 101;
|
public static final int REQUEST_CODE = 101;
|
||||||
public static final String EXTRA = "EDIT_TEXT_EXTRA";
|
public static final String EXTRA = "EDIT_TEXT_EXTRA";
|
||||||
private EditText mEditText;
|
private EditText mEditText;
|
||||||
private ColorPaletteView mColorPaletteView;
|
private int mColor, mOutlineColor;
|
||||||
private int mOutlineColor;
|
private EditColorMode mEditColor;
|
||||||
private float mTextSize, mOutlineSize;
|
private float mTextSize, mOutlineSize;
|
||||||
private FontFamilySet mFontFamilySet;
|
private FontFamilySet mFontFamilySet;
|
||||||
private FontFamilySet.FontFamily mSelectedFontFamily;
|
private FontFamilySet.FontFamily mSelectedFontFamily;
|
||||||
|
@ -52,8 +57,8 @@ public class EditTextActivity extends AppCompatActivity
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_edit_text);
|
setContentView(R.layout.activity_edit_text);
|
||||||
|
mEditColor = EditColorMode.None;
|
||||||
mEditText = (EditText) findViewById(R.id.edit_text);
|
mEditText = (EditText) findViewById(R.id.edit_text);
|
||||||
mColorPaletteView = (ColorPaletteView) findViewById(R.id.edit_color);
|
|
||||||
mEditBold = (CheckBox) findViewById(R.id.edit_bold);
|
mEditBold = (CheckBox) findViewById(R.id.edit_bold);
|
||||||
mEditItalic = (CheckBox) findViewById(R.id.edit_italic);
|
mEditItalic = (CheckBox) findViewById(R.id.edit_italic);
|
||||||
mEditOutline = (CheckBox) findViewById(R.id.edit_outline);
|
mEditOutline = (CheckBox) findViewById(R.id.edit_outline);
|
||||||
|
@ -67,14 +72,16 @@ public class EditTextActivity extends AppCompatActivity
|
||||||
initTextSizeSpinner(label.getTextSize());
|
initTextSizeSpinner(label.getTextSize());
|
||||||
mEditBold.setChecked(label.getBold());
|
mEditBold.setChecked(label.getBold());
|
||||||
mEditItalic.setChecked(label.getItalic());
|
mEditItalic.setChecked(label.getItalic());
|
||||||
mColorPaletteView.setColor(label.getForeColor());
|
|
||||||
initFontFamilySpinner(label.getFamilyName());
|
initFontFamilySpinner(label.getFamilyName());
|
||||||
updateBoldAndItalic();
|
updateBoldAndItalic();
|
||||||
mEditOutline.setChecked(label.getOutline());
|
mEditOutline.setChecked(label.getOutline());
|
||||||
initOutlineSizeSpinner(label.getOutlineSize());
|
initOutlineSizeSpinner(label.getOutlineSize());
|
||||||
|
|
||||||
|
mColor = label.getForeColor();
|
||||||
|
findViewById(R.id.edit_color).setBackgroundColor(mColor);
|
||||||
|
|
||||||
mOutlineColor = label.getOutlineColor();
|
mOutlineColor = label.getOutlineColor();
|
||||||
Button colorButton = (Button) findViewById(R.id.edit_outline_color);
|
findViewById(R.id.edit_outline_color).setBackgroundColor(mOutlineColor);
|
||||||
colorButton.setBackgroundColor(mOutlineColor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFontFamilySpinner(String familyName) {
|
private void initFontFamilySpinner(String familyName) {
|
||||||
|
@ -181,18 +188,42 @@ public class EditTextActivity extends AppCompatActivity
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onColorClick(View view) {
|
||||||
|
showColorDialog(R.string.color, mColor);
|
||||||
|
mEditColor = EditColorMode.Text;
|
||||||
|
}
|
||||||
|
|
||||||
public void onOutlineColorClick(View view) {
|
public void onOutlineColorClick(View view) {
|
||||||
|
showColorDialog(R.string.outline_color, mOutlineColor);
|
||||||
|
mEditColor = EditColorMode.Outline;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showColorDialog(int title, int color) {
|
||||||
ColorFragment fragment = new ColorFragment();
|
ColorFragment fragment = new ColorFragment();
|
||||||
fragment.setColor(mOutlineColor);
|
fragment.setTitle(title);
|
||||||
|
fragment.setColor(color);
|
||||||
fragment.addOnColorSelectedListener(this);
|
fragment.addOnColorSelectedListener(this);
|
||||||
fragment.show(getSupportFragmentManager(), ColorFragment.class.getName());
|
fragment.show(getSupportFragmentManager(), ColorFragment.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onColorSelected(DialogFragment fragment, int color) {
|
public void onColorSelected(DialogFragment fragment, int color) {
|
||||||
mOutlineColor = color;
|
switch (mEditColor) {
|
||||||
Button colorButton = (Button) findViewById(R.id.edit_outline_color);
|
case Text:
|
||||||
colorButton.setBackgroundColor(mOutlineColor);
|
mOutlineColor = color;
|
||||||
|
findViewById(R.id.edit_color).setBackgroundColor(mOutlineColor);
|
||||||
|
break;
|
||||||
|
case Outline:
|
||||||
|
mOutlineColor = color;
|
||||||
|
findViewById(R.id.edit_outline_color).setBackgroundColor(mOutlineColor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
mEditColor = EditColorMode.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel(DialogFragment fragment) {
|
||||||
|
mEditColor = EditColorMode.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void done() {
|
private void done() {
|
||||||
|
@ -210,7 +241,7 @@ public class EditTextActivity extends AppCompatActivity
|
||||||
label.setFamilyName(mSelectedFontFamily.name);
|
label.setFamilyName(mSelectedFontFamily.name);
|
||||||
label.setItalic(mEditItalic.isChecked());
|
label.setItalic(mEditItalic.isChecked());
|
||||||
label.setBold(mEditBold.isChecked());
|
label.setBold(mEditBold.isChecked());
|
||||||
label.setForeColor(mColorPaletteView.getColor());
|
label.setForeColor(mColor);
|
||||||
label.setOutline(mEditOutline.isChecked());
|
label.setOutline(mEditOutline.isChecked());
|
||||||
label.setOutlineSize(mOutlineSize);
|
label.setOutlineSize(mOutlineSize);
|
||||||
label.setOutlineColor(mOutlineColor);
|
label.setOutlineColor(mOutlineColor);
|
||||||
|
|
|
@ -53,9 +53,36 @@
|
||||||
android:id="@+id/edit_bold"
|
android:id="@+id/edit_bold"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="0.7"
|
android:layout_weight="0.3"
|
||||||
android:text="@string/bold"/>
|
android:text="@string/bold"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.4"
|
||||||
|
android:clickable="true"
|
||||||
|
android:onClick="onColorClick"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/edit_color"
|
||||||
|
android:layout_width="32sp"
|
||||||
|
android:layout_height="32sp"
|
||||||
|
android:background="@android:color/white"
|
||||||
|
android:onClick="onColorClick"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/color"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="6sp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:onClick="onColorClick"
|
||||||
|
android:text="@string/color"
|
||||||
|
android:textColor="?android:attr/textColorPrimary"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -106,9 +133,4 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<om.sstvencoder.ColorPalette.ColorPaletteView
|
|
||||||
android:id="@+id/edit_color"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -36,5 +36,6 @@
|
||||||
<string name="bold">Bold</string>
|
<string name="bold">Bold</string>
|
||||||
<string name="italic">Italic</string>
|
<string name="italic">Italic</string>
|
||||||
<string name="outline">Outline</string>
|
<string name="outline">Outline</string>
|
||||||
|
<string name="color">Color</string>
|
||||||
<string name="outline_color">Outline Color</string>
|
<string name="outline_color">Outline Color</string>
|
||||||
</resources>
|
</resources>
|
Ładowanie…
Reference in New Issue