-
Notifications
You must be signed in to change notification settings - Fork 230
Expand file tree
/
Copy pathMainActivity.java
More file actions
120 lines (101 loc) · 3.58 KB
/
MainActivity.java
File metadata and controls
120 lines (101 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.example.circularimageview;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Shader;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
import com.pkmmte.view.CircularImageView;
public class MainActivity extends Activity
{
private int[] images = {
R.drawable.default_avatar,
R.drawable.default_avatar,
R.drawable.default_avatar,
R.drawable.default_avatar,
R.drawable.default_avatar,
R.drawable.default_avatar,
R.drawable.default_avatar
};
private ListView mList;
private SimpleAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
initList();
}
private void initViews()
{
mList = (ListView) findViewById(R.id.mList);
}
@SuppressLint("ClickableViewAccessibility")
private void initList()
{
// Add header
View headerView = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.header, mList, false);
mList.addHeaderView(headerView, null, false);
// Add footer
View footerView = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer, mList, false);
mList.addFooterView(footerView, null, false);
// DOGE!!!
final CircularImageView imgDoge = (CircularImageView) headerView.findViewById(R.id.imgDoge);
final int dogeSize = 196;
LinearGradient gradient = new LinearGradient(-dogeSize /2, 0, dogeSize /2, dogeSize, Color.BLACK, Color.WHITE, Shader.TileMode.CLAMP);
imgDoge.setBorderGradient(gradient);
final TextView txtWow = (TextView) headerView.findViewById(R.id.txtWow);
final TextView txtClick = (TextView) headerView.findViewById(R.id.txtClick);
imgDoge.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(imgDoge.isSelected()) {
txtWow.setVisibility(View.VISIBLE);
txtClick.setVisibility(View.VISIBLE);
}
else {
txtWow.setVisibility(View.INVISIBLE);
txtClick.setVisibility(View.INVISIBLE);
}
return false;
}
});
// Load web image with a round transformation
final CircularImageView imgNetwork = (CircularImageView) footerView.findViewById(R.id.imgNetwork);
loadWebImage(imgNetwork);
// Set the most basic adapter
mAdapter = new SimpleAdapter(this, images);
mList.setAdapter(mAdapter);
}
private void loadWebImage(final CircularImageView imgNetwork) {
final String URL = "http://i.imgur.com/LrwApXg.png";
// Using Picasso...
//Picasso.with(this).load(URL).placeholder(R.drawable.default_avatar).error(R.drawable.grumpy_cat).transform(new PicassoRoundTransform()).into(imgNetwork);
// Using Glide...
//Glide.with(this).load(URL).placeholder(R.drawable.default_avatar).error(R.drawable.grumpy_cat).into(imgNetwork);
// Using ION...
Ion.with(this).load(URL).asBitmap().setCallback(new FutureCallback<Bitmap>() {
@Override
public void onCompleted(Exception e, Bitmap result) {
if(e == null) {
// Success
imgNetwork.setImageBitmap(result);
}
else {
// Error
imgNetwork.setImageResource(R.drawable.grumpy_cat);
}
}
});
}
}