From cdfd0a4db6fab01438cc736cf61fb9fc40fb5078 Mon Sep 17 00:00:00 2001 From: vancebs Date: Wed, 26 Aug 2015 16:15:43 +0800 Subject: [PATCH] now can switch background color between light and dark. --- .../resreader/resreader/ColorResReader.java | 3 +- .../com/hf/resreader/ui/MainActivity.java | 45 +++++++++++++++---- app/src/main/res/drawable/edge.xml | 20 +++++++++ app/src/main/res/layout/color_value_view.xml | 7 +-- app/src/main/res/menu/menu_main.xml | 7 +++ app/src/main/res/values/colors.xml | 6 +++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/values/styles.xml | 1 + 8 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/drawable/edge.xml create mode 100644 app/src/main/res/values/colors.xml diff --git a/app/src/main/java/com/hf/resreader/resreader/ColorResReader.java b/app/src/main/java/com/hf/resreader/resreader/ColorResReader.java index 4743650..247195f 100644 --- a/app/src/main/java/com/hf/resreader/resreader/ColorResReader.java +++ b/app/src/main/java/com/hf/resreader/resreader/ColorResReader.java @@ -5,6 +5,7 @@ import android.util.Log; import android.view.View; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import com.hf.resreader.R; @@ -27,7 +28,7 @@ public View read(Context context, View convertView, String pkg, String type, Str } TextView resIdView = (TextView) view.findViewById(R.id.res_id); - FrameLayout blockView = (FrameLayout) view.findViewById(R.id.color_block); + ImageView blockView = (ImageView) view.findViewById(R.id.color_block); TextView valueView = (TextView) view.findViewById(R.id.color_value); // get package context diff --git a/app/src/main/java/com/hf/resreader/ui/MainActivity.java b/app/src/main/java/com/hf/resreader/ui/MainActivity.java index d498ed2..983c773 100644 --- a/app/src/main/java/com/hf/resreader/ui/MainActivity.java +++ b/app/src/main/java/com/hf/resreader/ui/MainActivity.java @@ -7,6 +7,7 @@ import android.app.Activity; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.os.Bundle; import android.util.Log; import android.view.Menu; @@ -29,6 +30,7 @@ public class MainActivity extends Activity { private static final String EXTRA_PKG = "extra-pkg"; private static final String EXTRA_TYPE_INDEX = "extra-type-index"; private static final String EXTRA_KEY = "extra-key"; + private static final String EXTRA_IS_DARK = "extra-is-dark"; private String[] mTypes = null; @@ -49,6 +51,11 @@ public class MainActivity extends Activity { private ResReaderManager mResReaderManager; + private ViewGroup mContainer; + + private MenuItem mThemeBtn; + private boolean mIsDark = false; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -59,8 +66,8 @@ protected void onCreate(Bundle savedInstanceState) { mKey = (AutoCompleteTextView) findViewById(R.id.key); // create reader manager - ViewGroup container = (ViewGroup) findViewById(R.id.value_container); - mResReaderManager = new ResReaderManager(this, container); + mContainer = (ViewGroup) findViewById(R.id.value_container); + mResReaderManager = new ResReaderManager(this, mContainer); // get pkg auto complete setPkgAutoComplete(); @@ -93,6 +100,7 @@ public void onNothingSelected(AdapterView arg0) { mPkg.setText(savedInstanceState.getString(EXTRA_PKG, "")); mType.setSelection(savedInstanceState.getInt(EXTRA_TYPE_INDEX, 0)); mKey.setText(savedInstanceState.getString(EXTRA_KEY, "")); + mIsDark = savedInstanceState.getBoolean(EXTRA_IS_DARK, false); onReadClicked(); } @@ -101,17 +109,23 @@ public void onNothingSelected(AdapterView arg0) { @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); + mThemeBtn = menu.findItem(R.id.theme); + updateThemeButton(); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.read) { - onReadClicked(); - return true; - } else if (item.getItemId() == R.id.clear) { - onClearClicked(); - return true; + switch (item.getItemId()) { + case R.id.read: + onReadClicked(); + return true; + case R.id.clear: + onClearClicked(); + return true; + case R.id.theme: + onThemeClicked(); + return true; } return super.onOptionsItemSelected(item); @@ -124,6 +138,7 @@ protected void onSaveInstanceState(Bundle outState) { outState.putString(EXTRA_PKG, mValuePkg); outState.putInt(EXTRA_TYPE_INDEX, mValueTypeIndex); outState.putString(EXTRA_KEY, mValueKey); + outState.putBoolean(EXTRA_IS_DARK, mIsDark); } private void onReadClicked() { @@ -138,6 +153,20 @@ private void onClearClicked() { mResReaderManager.clear(); } + private void onThemeClicked() { + mIsDark = !mIsDark; + updateThemeButton(); + } + + private void updateThemeButton() { + Resources res = getResources(); + String title = mIsDark ? res.getString(R.string.btn_theme_bright) : res.getString(R.string.btn_theme_dark); + mThemeBtn.setTitle(title); + mThemeBtn.setTitleCondensed(title); + + mContainer.setBackgroundResource(mIsDark ? R.color.background_color_dark : R.color.background_color_light); + } + private boolean isNativePkg(String pkg) { if (pkg == null || pkg.isEmpty()) { return true; diff --git a/app/src/main/res/drawable/edge.xml b/app/src/main/res/drawable/edge.xml new file mode 100644 index 0000000..57c6acd --- /dev/null +++ b/app/src/main/res/drawable/edge.xml @@ -0,0 +1,20 @@ + + + + + + + + + " + + \ No newline at end of file diff --git a/app/src/main/res/layout/color_value_view.xml b/app/src/main/res/layout/color_value_view.xml index 02b9b1e..adfa700 100644 --- a/app/src/main/res/layout/color_value_view.xml +++ b/app/src/main/res/layout/color_value_view.xml @@ -29,10 +29,11 @@ android:layout_height="wrap_content" android:textSize="@dimen/result_text_size" android:text="@string/label_value" /> - + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/edge" /> + + + + + #FF000000 + #FF666666 + #00FFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89ef751..1aa43e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,6 +11,8 @@ Package name i.e. app_name + Bright + Dark Read Clear diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ff6c9d2..44f6272 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -3,6 +3,7 @@