Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class StackTestActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- for (int i = 0; i < 200; ++i) {
- people.add(new Person(i));
- }
- GridView grid = new GridView(this);
- grid.setNumColumns(5);
- grid.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
- SomeAdapter a = new SomeAdapter();
- grid.setAdapter(a);
- setContentView(grid);
- }
- public static class Person {
- public String id;
- boolean isSelected;
- public void toggleSelected() { isSelected = !isSelected; }
- public boolean isSelected() { return isSelected; }
- public Person(int pos) {
- id = String.valueOf(pos);
- isSelected = false;
- }
- }
- ArrayList<Person> people = new ArrayList<>();
- public class SomeAdapter extends BaseAdapter {
- @Override
- public int getCount() {
- return people.size();
- }
- @Override
- public Person getItem(int position) {
- return people.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- Person person = people.get(position);
- ViewHolder vh = null;
- if (convertView == null) {
- convertView = getRow();
- vh = new ViewHolder(convertView);
- convertView.setTag(R.id.debug3, vh);
- } else {
- vh = (ViewHolder) convertView.getTag(R.id.debug3);
- }
- vh.tv.setText(person.id);
- ObjectAnimator anim = (ObjectAnimator) convertView.getTag(R.id.debug5);
- if (person.isSelected()) {
- if (anim == null) {
- anim = getAnimator(convertView);
- anim.setTarget(convertView);
- anim.start();
- convertView.setTag(R.id.debug5, anim);
- }
- } else {
- if (anim != null) anim.cancel();
- convertView.setTag(R.id.debug5, null);
- }
- convertView.setTag(R.id.debug4, person);
- convertView.setOnClickListener(new View.OnClickListener() {
- @Override public void onClick(View v) {
- Person person = (Person) v.getTag(R.id.debug4);
- person.toggleSelected();
- notifyDataSetChanged();
- }
- });
- return convertView;
- }
- }
- public ObjectAnimator getAnimator(View v) {
- ObjectAnimator a = ObjectAnimator.ofFloat(v, "rotation", 0, -2, 0, 2, 0);
- a.setDuration(300);
- a.setRepeatCount(ObjectAnimator.INFINITE);
- return a;
- }
- public static class ViewHolder {
- TextView tv;
- public ViewHolder(View convertView) {
- tv = (TextView) convertView.findViewById(R.id.debug_one);
- }
- }
- public View getRow() {
- FrameLayout root = new FrameLayout(StackTestActivity.this);
- TextView tv = new TextView(StackTestActivity.this);
- tv.setId(R.id.debug_one);
- tv.setTextSize(60);
- tv.setPadding(20, 20, 20, 20);
- FrameLayout.LayoutParams lps = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- lps.gravity = Gravity.CENTER;
- tv.setLayoutParams(lps);
- root.addView(tv);
- return root;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement