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/.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 38d36a5..9085db5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,22 +1,54 @@
+ 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/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 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_image.xml b/app/src/main/res/layout/activity_image.xml
new file mode 100644
index 0000000..061f1ad
--- /dev/null
+++ b/app/src/main/res/layout/activity_image.xml
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_receive_data.xml b/app/src/main/res/layout/activity_receive_data.xml
new file mode 100644
index 0000000..7b06b27
--- /dev/null
+++ b/app/src/main/res/layout/activity_receive_data.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
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/app/src/main/res/layout/activity_simple_share.xml b/app/src/main/res/layout/activity_simple_share.xml
new file mode 100644
index 0000000..84fa563
--- /dev/null
+++ b/app/src/main/res/layout/activity_simple_share.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_status_bar.xml b/app/src/main/res/layout/activity_status_bar.xml
new file mode 100644
index 0000000..f27dedf
--- /dev/null
+++ b/app/src/main/res/layout/activity_status_bar.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-xhdpi/ic_test.png b/app/src/main/res/mipmap-xhdpi/ic_test.png
new file mode 100644
index 0000000..dc7ebe1
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_test.png differ
diff --git a/app/src/main/res/values-v19/styles.xml b/app/src/main/res/values-v19/styles.xml
new file mode 100644
index 0000000..82a6134
--- /dev/null
+++ b/app/src/main/res/values-v19/styles.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
new file mode 100644
index 0000000..7a1596f
--- /dev/null
+++ b/app/src/main/res/values-v21/styles.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5885930..e760fc4 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,15 @@
-
+
+
diff --git a/build.gradle b/build.gradle
index aff4f41..7b581f0 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.3.0-alpha1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -15,6 +15,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ maven { url "https://jitpack.io" }
}
}
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