From 843bc4602514aee98695c15a59965b152df4d3da Mon Sep 17 00:00:00 2001 From: shaohui10086 <961492943@qq.com> Date: Thu, 20 Oct 2016 22:58:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1020=EF=BC=9ASharedPreferences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.name | 1 - .idea/gradle.xml | 10 ++----- app/src/main/AndroidManifest.xml | 24 ++++++++------- .../v1020/SharedPreferenceTestActivity.java | 30 +++++++++++++++++++ .../activity_shared_preference_test.xml | 15 ++++++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +-- 7 files changed, 64 insertions(+), 22 deletions(-) delete mode 100644 .idea/.name create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1020/SharedPreferenceTestActivity.java create mode 100644 app/src/main/res/layout/activity_shared_preference_test.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 35aab4c..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -AndroidPractise \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 58992cc..7ac24c7 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -3,21 +3,15 @@ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 38d36a5..e1b0920 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,22 +1,26 @@ + package="me.shaohui.androidpractise" + > - + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:supportsRtl="true" + android:theme="@style/AppTheme" + > + - + - + - + + + \ No newline at end of file diff --git a/app/src/main/java/me/shaohui/androidpractise/v1020/SharedPreferenceTestActivity.java b/app/src/main/java/me/shaohui/androidpractise/v1020/SharedPreferenceTestActivity.java new file mode 100644 index 0000000..43ced76 --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1020/SharedPreferenceTestActivity.java @@ -0,0 +1,30 @@ +package me.shaohui.androidpractise.v1020; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import me.shaohui.androidpractise.R; + +public class SharedPreferenceTestActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_shared_preference_test); + } + + private void newInstance() { + SharedPreferences sp1 = getSharedPreferences(getPackageName() + "test", MODE_APPEND); + SharedPreferences sp2 = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences sp3 = getPreferences(MODE_PRIVATE); + + sp1.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() { + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + + } + }); + } +} diff --git a/app/src/main/res/layout/activity_shared_preference_test.xml b/app/src/main/res/layout/activity_shared_preference_test.xml new file mode 100644 index 0000000..9ac8c3f --- /dev/null +++ b/app/src/main/res/layout/activity_shared_preference_test.xml @@ -0,0 +1,15 @@ + + + + diff --git a/build.gradle b/build.gradle index aff4f41..c20bca1 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' + classpath 'com.android.tools.build:gradle:2.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 122a0dc..f1612ee 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Dec 28 10:00:20 PST 2015 +#Thu Oct 20 14:47:08 CST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip From 3076db36e4f8c1caf01c47ef4ed6427fbc086989 Mon Sep 17 00:00:00 2001 From: shaohui10086 <961492943@qq.com> Date: Wed, 23 Nov 2016 18:19:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1111=EF=BC=9A=E5=B0=9D=E8=AF=95=E6=B3=A2?= =?UTF-8?q?=E7=BA=B9=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- app/build.gradle | 10 ++- app/src/main/AndroidManifest.xml | 32 ++++++- .../androidpractise/v1028/ImageActivity.java | 14 +++ .../v1029/StatusBarActivity.java | 30 +++++++ .../androidpractise/v1103/AVloadingDemo.java | 34 ++++++++ .../v1111/ReceiveDataActivity.java | 47 ++++++++++ .../v1111/SimpleShareActivity.java | 81 ++++++++++++++++++ .../res/layout/activity_avloading_demo.xml | 36 ++++++++ app/src/main/res/layout/activity_image.xml | 11 +++ .../main/res/layout/activity_receive_data.xml | 27 ++++++ .../main/res/layout/activity_simple_share.xml | 30 +++++++ .../main/res/layout/activity_status_bar.xml | 34 ++++++++ app/src/main/res/mipmap-xhdpi/ic_test.png | Bin 0 -> 237707 bytes app/src/main/res/values-v19/styles.xml | 7 ++ app/src/main/res/values-v21/styles.xml | 8 ++ app/src/main/res/values/styles.xml | 6 +- build.gradle | 3 +- 18 files changed, 403 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1028/ImageActivity.java create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1029/StatusBarActivity.java create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1103/AVloadingDemo.java create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1111/ReceiveDataActivity.java create mode 100644 app/src/main/java/me/shaohui/androidpractise/v1111/SimpleShareActivity.java create mode 100644 app/src/main/res/layout/activity_avloading_demo.xml create mode 100644 app/src/main/res/layout/activity_image.xml create mode 100644 app/src/main/res/layout/activity_receive_data.xml create mode 100644 app/src/main/res/layout/activity_simple_share.xml create mode 100644 app/src/main/res/layout/activity_status_bar.xml create mode 100644 app/src/main/res/mipmap-xhdpi/ic_test.png create mode 100644 app/src/main/res/values-v19/styles.xml create mode 100644 app/src/main/res/values-v21/styles.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index fbb6828..5d19981 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index cef4061..59f40aa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion 25 + buildToolsVersion "25.0.0" defaultConfig { applicationId "me.shaohui.androidpractise" - minSdkVersion 15 + minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" @@ -22,5 +22,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.4.0' + compile 'com.android.support:appcompat-v7:25.0.0' + compile 'com.github.chrisbanes:PhotoView:1.3.1' + compile 'com.wang.avi:library:2.1.3' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e1b0920..9085db5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,14 +12,42 @@ > + + + + + + + + + + + - - + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/me/shaohui/androidpractise/v1028/ImageActivity.java b/app/src/main/java/me/shaohui/androidpractise/v1028/ImageActivity.java new file mode 100644 index 0000000..ecaf747 --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1028/ImageActivity.java @@ -0,0 +1,14 @@ +package me.shaohui.androidpractise.v1028; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import me.shaohui.androidpractise.R; + +public class ImageActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_image); + } +} diff --git a/app/src/main/java/me/shaohui/androidpractise/v1029/StatusBarActivity.java b/app/src/main/java/me/shaohui/androidpractise/v1029/StatusBarActivity.java new file mode 100644 index 0000000..c39157b --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1029/StatusBarActivity.java @@ -0,0 +1,30 @@ +package me.shaohui.androidpractise.v1029; + +import android.app.Fragment; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; +import me.shaohui.androidpractise.R; + +public class StatusBarActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getFragmentManager().beginTransaction() + .replace(android.R.id.content, new Fragment()) + .commit(); + + + ViewGroup parent = (ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content); + parent.addView(new TextView(this)); + + getFragmentManager().beginTransaction() + .add(android.R.id.content, new Fragment()) + .commit(); + } +} diff --git a/app/src/main/java/me/shaohui/androidpractise/v1103/AVloadingDemo.java b/app/src/main/java/me/shaohui/androidpractise/v1103/AVloadingDemo.java new file mode 100644 index 0000000..3886ad4 --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1103/AVloadingDemo.java @@ -0,0 +1,34 @@ +package me.shaohui.androidpractise.v1103; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import com.wang.avi.AVLoadingIndicatorView; +import me.shaohui.androidpractise.R; + +public class AVloadingDemo extends AppCompatActivity { + + private AVLoadingIndicatorView mAVLoadingIndicatorView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_avloading_demo); + + mAVLoadingIndicatorView = (AVLoadingIndicatorView) findViewById(R.id.av_loading); + + + findViewById(R.id.action_start).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mAVLoadingIndicatorView.show(); + } + }); + findViewById(R.id.action_stop).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mAVLoadingIndicatorView.hide(); + } + }); + } +} diff --git a/app/src/main/java/me/shaohui/androidpractise/v1111/ReceiveDataActivity.java b/app/src/main/java/me/shaohui/androidpractise/v1111/ReceiveDataActivity.java new file mode 100644 index 0000000..8932c90 --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1111/ReceiveDataActivity.java @@ -0,0 +1,47 @@ +package me.shaohui.androidpractise.v1111; + +import android.content.Intent; +import android.net.Uri; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.text.TextUtils; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; +import java.net.URL; +import java.util.ArrayList; +import me.shaohui.androidpractise.R; +import org.w3c.dom.Text; + +public class ReceiveDataActivity extends AppCompatActivity { + + private TextView mTextView; + + private ImageView mImageView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_receive_data); + + mTextView = (TextView) findViewById(R.id.text_view); + mImageView = (ImageView) findViewById(R.id.image_view); + + String action = getIntent().getAction(); + String type = getIntent().getType(); + + //if (TextUtils.equals(action, Intent.ACTION_SEND)) { + // if (TextUtils.equals(type, "text/plain")) { + // String text = getIntent().getStringExtra(Intent.EXTRA_TEXT); + // mTextView.setText(text); + // } else if (type.startsWith("image/")) { + // Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM); + // mImageView.setImageURI(uri); + // } + //} else if (TextUtils.equals(action, Intent.ACTION_SEND_MULTIPLE)) { + // ArrayList uris = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM); + // mImageView.setImageURI(uris.get(0)); + // mTextView.setText(uris.size()); + //} + } +} diff --git a/app/src/main/java/me/shaohui/androidpractise/v1111/SimpleShareActivity.java b/app/src/main/java/me/shaohui/androidpractise/v1111/SimpleShareActivity.java new file mode 100644 index 0000000..1dfccd0 --- /dev/null +++ b/app/src/main/java/me/shaohui/androidpractise/v1111/SimpleShareActivity.java @@ -0,0 +1,81 @@ +package me.shaohui.androidpractise.v1111; + +import android.app.Activity; +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.provider.MediaStore; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Toast; +import me.shaohui.androidpractise.R; + +public class SimpleShareActivity extends AppCompatActivity { + + private String imagePath; + + private Uri imageUri = Uri.parse("content://media/external/images/media/37875"); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_simple_share); + + findViewById(R.id.btn_select).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + selectImage(); + } + }); + + findViewById(R.id.btn_share).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //shareImage(); + shareText(); + } + }); + } + + private void selectImage() { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("image/*"); + startActivityForResult(intent, 666); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == Activity.RESULT_OK) { + String[] selection = new String[] { MediaStore.Images.ImageColumns.DATA }; + if (data != null) { + imageUri = data.getData(); + Cursor cursor = getContentResolver().query(imageUri, null, null, null, null); + Log.i("TAG", cursor.getColumnIndex(selection[0]) + ""); + imagePath = cursor.getString(cursor.getColumnIndex(selection[0])); + cursor.close(); + //Toast.makeText(this, imagePath, Toast.LENGTH_SHORT).show(); + } + } + } + + private void saveLocalImage() { + + } + + private void shareImage() { + Intent share = new Intent(Intent.ACTION_SEND); + share.putExtra(Intent.EXTRA_STREAM, imageUri); + share.setType("image/*"); + startActivity(Intent.createChooser(share, "分享试试")); + } + + private void shareText() { + Intent share = new Intent(Intent.ACTION_SEND); + share.putExtra(Intent.EXTRA_TEXT, "测试分享"); + share.setType("text/plain"); + startActivity(Intent.createChooser(share, "分享试试")); + } + +} diff --git a/app/src/main/res/layout/activity_avloading_demo.xml b/app/src/main/res/layout/activity_avloading_demo.xml new file mode 100644 index 0000000..98b6749 --- /dev/null +++ b/app/src/main/res/layout/activity_avloading_demo.xml @@ -0,0 +1,36 @@ + + + + +