Skip to content

Commit 6a5ff8f

Browse files
committed
add
1 parent 49f909d commit 6a5ff8f

9 files changed

Lines changed: 302 additions & 184 deletions

File tree

.idea/gradle.xml

Lines changed: 1 addition & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 28 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,6 @@ dependencies {
3434
compile 'com.android.support:design:24.2.0'
3535
compile project(':library')
3636
compile 'com.jakewharton:butterknife:5.1.1'
37+
compile 'com.github.bumptech.glide:glide:3.7.0'
38+
compile 'de.hdodenhof:circleimageview:2.1.0'
3739
}
Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,81 @@
11
package com.kevin.android.ui;
22

3+
import android.animation.ObjectAnimator;
4+
import android.animation.PropertyValuesHolder;
35
import android.app.Activity;
6+
import android.content.Context;
47
import android.content.Intent;
8+
import android.net.Uri;
59
import android.support.v7.app.AppCompatActivity;
610
import android.os.Bundle;
11+
import android.util.DisplayMetrics;
12+
import android.view.Display;
713
import android.view.MotionEvent;
814

15+
import android.view.View;
16+
import android.view.WindowManager;
17+
import android.view.animation.BounceInterpolator;
18+
import android.view.animation.LinearInterpolator;
19+
import com.bumptech.glide.Glide;
920
import com.kevin.android.R;
1021
import com.kevin.library.widget.heartview.HeartView;
22+
import com.kevin.library.widget.heartview.HeartViewCallBack;
23+
import de.hdodenhof.circleimageview.CircleImageView;
1124

12-
public class HeartViewActivity extends AppCompatActivity {
25+
public class HeartViewActivity extends AppCompatActivity implements HeartViewCallBack {
1326

14-
private HeartView mHeartView;
27+
private HeartView mHeartView;
28+
private CircleImageView mLeftCircleImageView;
29+
private CircleImageView mRightCircleImageView;
1530

16-
@Override
17-
protected void onCreate(Bundle savedInstanceState) {
18-
super.onCreate(savedInstanceState);
19-
setContentView(R.layout.activity_heart_view);
20-
mHeartView = (HeartView) findViewById(R.id.heart_view);
21-
}
31+
@Override protected void onCreate(Bundle savedInstanceState) {
32+
super.onCreate(savedInstanceState);
33+
setContentView(R.layout.activity_heart_view);
34+
mHeartView = (HeartView) findViewById(R.id.heart_view);
35+
mHeartView.setHeartViewCallBack(this);
36+
mLeftCircleImageView = (CircleImageView) findViewById(R.id.profile_image_left);
37+
mRightCircleImageView = (CircleImageView) findViewById(R.id.profile_image_right);
38+
Glide.with(this).load(R.mipmap.ic_dialog_positive).centerCrop().into(mLeftCircleImageView);
39+
Glide.with(this).load(R.mipmap.ic_dialog_info).centerCrop().into(mRightCircleImageView);
40+
}
2241

23-
@Override
24-
public boolean onTouchEvent(MotionEvent event) {
25-
mHeartView.reDraw();
26-
return super.onTouchEvent(event);
27-
}
42+
@Override public boolean onTouchEvent(MotionEvent event) {
43+
mHeartView.reDraw();
44+
return super.onTouchEvent(event);
45+
}
2846

29-
public static void startHeartView(Activity activity){
30-
Intent intent = new Intent(activity,HeartViewActivity.class);
31-
activity.startActivity(intent);
32-
}
47+
public static void startHeartView(Activity activity) {
48+
Intent intent = new Intent(activity, HeartViewActivity.class);
49+
activity.startActivity(intent);
50+
}
51+
52+
@Override public void onHeartStart() {
53+
54+
}
55+
56+
@Override public void onHeartFinish() {
57+
runOnUiThread(new Runnable() {
58+
@Override public void run() {
59+
WindowManager manager = getWindow().getWindowManager();
60+
Display display = manager.getDefaultDisplay();
61+
mLeftCircleImageView.setVisibility(View.VISIBLE);
62+
mRightCircleImageView.setVisibility(View.VISIBLE);
63+
int width = display.getWidth();
64+
ObjectAnimator animator = ObjectAnimator.ofFloat(mLeftCircleImageView, "translationX", 0f,
65+
width / 2-200);
66+
ObjectAnimator animator1 =
67+
ObjectAnimator.ofFloat(mRightCircleImageView, "translationX",width ,
68+
width / 3);
69+
animator.setDuration(2000).setInterpolator(new BounceInterpolator());
70+
animator1.setDuration(2000).setInterpolator(new BounceInterpolator());
71+
animator.start();
72+
animator1.start();
73+
}
74+
});
75+
}
76+
77+
public static int px2dip(Context context,float pxValue) {
78+
float scale = context.getResources().getDisplayMetrics().density;
79+
return (int) (pxValue/scale+0.5f);
80+
}
3381
}
Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
44
android:layout_width="match_parent"
55
android:layout_height="match_parent"
@@ -9,4 +9,32 @@
99
android:id="@+id/heart_view"
1010
android:layout_width="match_parent"
1111
android:layout_height="match_parent" />
12-
</RelativeLayout>
12+
13+
<RelativeLayout
14+
android:layout_width="match_parent"
15+
android:layout_height="wrap_content"
16+
android:layout_gravity="center_vertical"
17+
>
18+
<de.hdodenhof.circleimageview.CircleImageView
19+
xmlns:app="http://schemas.android.com/apk/res-auto"
20+
android:id="@+id/profile_image_left"
21+
android:layout_width="96dp"
22+
android:layout_height="96dp"
23+
app:civ_border_width="2dp"
24+
android:visibility="gone"
25+
android:src="@mipmap/ic_dialog_info"
26+
android:layout_alignParentLeft="true"
27+
app:civ_border_color="#FF000000"/>
28+
29+
<de.hdodenhof.circleimageview.CircleImageView
30+
xmlns:app="http://schemas.android.com/apk/res-auto"
31+
android:id="@+id/profile_image_right"
32+
android:layout_width="96dp"
33+
android:layout_height="96dp"
34+
app:civ_border_width="2dp"
35+
android:visibility="gone"
36+
android:src="@mipmap/ic_dialog_info"
37+
android:layout_alignParentRight="true"
38+
app:civ_border_color="#FF000000"/>
39+
</RelativeLayout>
40+
</FrameLayout>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
buildscript {
22
repositories {
33
jcenter()
4+
mavenCentral()
45
}
56
dependencies {
67
classpath 'com.android.tools.build:gradle:2.2.0-rc1'

gradle.properties

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
# Project-wide Gradle settings.
2-
3-
# IDE (e.g. Android Studio) users:
4-
# Gradle settings configured through the IDE *will override*
5-
# any settings specified in this file.
6-
1+
## Project-wide Gradle settings.
2+
#
73
# For more details on how to configure your build environment visit
84
# http://www.gradle.org/docs/current/userguide/build_environment.html
9-
5+
#
106
# Specifies the JVM arguments used for the daemon process.
117
# The setting is particularly useful for tweaking memory settings.
12-
org.gradle.jvmargs=-Xmx1536m
13-
8+
# Default value: -Xmx1024m -XX:MaxPermSize=256m
9+
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
10+
#
1411
# When configured, Gradle will run in incubating parallel mode.
1512
# This option should only be used with decoupled projects. More details, visit
1613
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17-
org.gradle.parallel=true
14+
# org.gradle.parallel=true
15+
#Sun Sep 18 23:06:08 CST 2016
16+
systemProp.http.proxyHost=127.0.0.1
17+
org.gradle.jvmargs=-Xmx1536m
18+
org.gradle.parallel=true
19+
systemProp.http.proxyPort=1080

0 commit comments

Comments
 (0)