1 packagenet.loonggg.rulerdemo;2

3 importjava.text.ParseException;4 importjava.text.SimpleDateFormat;5 importjava.util.Date;6

7 importandroid.app.Activity;8 importandroid.os.Bundle;9 importandroid.os.Handler;10 importandroid.view.LayoutInflater;11 importandroid.view.MotionEvent;12 importandroid.view.View;13 importandroid.view.View.OnTouchListener;14 importandroid.view.ViewGroup.LayoutParams;15 importandroid.widget.HorizontalScrollView;16 importandroid.widget.LinearLayout;17 importandroid.widget.TextView;18

19 public class MainActivity extendsActivity {20 privateHorizontalScrollView ruler;21 privateLinearLayout rulerlayout, all_layout;22 privateTextView user_birth_value;23 private intbeginYear;24

25 private String birthyear = "1970";26 private long time = 0;27 private intscreenWidth;28 private boolean isFirst = true;29

30 @Override31 protected voidonCreate(Bundle savedInstanceState) {32 super.onCreate(savedInstanceState);33 setContentView(R.layout.activity_main);34 user_birth_value =(TextView) findViewById(R.id.user_birth_value);35 user_birth_value.setText("1970");36 ruler =(HorizontalScrollView) findViewById(R.id.birthruler);37 rulerlayout =(LinearLayout) findViewById(R.id.ruler_layout);38 ruler.setOnTouchListener(newOnTouchListener() {39

40 @Override41 public booleanonTouch(View v, MotionEvent event) {42 int action =event.getAction();43 user_birth_value.setText(String.valueOf(beginYear44 + (int) Math.ceil((ruler.getScrollX()) / 20)));45 switch(action) {46 caseMotionEvent.ACTION_DOWN:47 caseMotionEvent.ACTION_MOVE:48 break;49 caseMotionEvent.ACTION_UP:50 new Handler().postDelayed(newRunnable() {51 @Override52 public voidrun() {53 user_birth_value.setText(String.valueOf(beginYear54 + (int) Math.ceil((ruler.getScrollX()) / 20)));55 birthyear = String.valueOf((int) (beginYear +Math56 .ceil((ruler.getScrollX()) / 20)));57 try{58 time = (new SimpleDateFormat("yyyy")59 .parse(String.valueOf(birthyear)))60 .getTime();61 } catch(ParseException e) {62 e.printStackTrace();63 }64 }65 }, 1000);66 break;67 }68 return false;69 }70

71 });72 }73

74 @Override75 public void onWindowFocusChanged(booleanhasFocus) {76 super.onWindowFocusChanged(hasFocus);77 if(isFirst) {78 screenWidth =ruler.getWidth();79 constructRuler();80 isFirst = false;81 }82 }83

84 @Override85 protected voidonResume() {86 super.onResume();87 new Handler().postDelayed(newRunnable() {88 @Override89 public voidrun() {90 scroll();91 }92 }, 100);93 }94

95 private voidscroll() {96 ruler.smoothScrollTo((1970 - beginYear) * 20, 0);97 }98

99 @SuppressWarnings("deprecation")100 private voidconstructRuler() {101 int year = newDate().getYear();102 if (year < 2015)103 year = 2010;104 beginYear = year / 10 * 10 - 150;105 View leftview = (View) LayoutInflater.from(this).inflate(106 R.layout.blankhrulerunit, null);107 leftview.setLayoutParams(new LayoutParams(screenWidth / 2,108 LayoutParams.MATCH_PARENT));109 rulerlayout.addView(leftview);110 for (int i = 0; i < 16; i++) {111 View view = (View) LayoutInflater.from(this).inflate(112 R.layout.hrulerunit, null);113 view.setLayoutParams(new LayoutParams(200,114 LayoutParams.MATCH_PARENT));115 TextView tv =(TextView) view.findViewById(R.id.hrulerunit);116 tv.setText(String.valueOf(beginYear + i * 10));117 rulerlayout.addView(view);118 }119 View rightview = (View) LayoutInflater.from(this).inflate(120 R.layout.blankhrulerunit, null);121 rightview.setLayoutParams(new LayoutParams(screenWidth / 2,122 LayoutParams.MATCH_PARENT));123 rulerlayout.addView(rightview);124 }125

126 }

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐