闹钟+秒表+倒计时三合一
来源:互联网 发布:卖淘宝号会泄漏信息吗 编辑:程序博客网 时间:2024/04/29 20:09
各位大佬,这就是秒表和倒计时和闹钟的界面。
那我们先实现界面好吗?
我们可以看到上面一行有闹钟,有计时,有倒计时,点击或者滑动就可以去到相应的界面了。
我们实现这三个界面主要用到了 Fragment+Viewpager //碎片(类似Activity)
viewpager的使用一定要用到它独特的适配器,这个适配器适配了三个Fragment。
主Activity上面放一个Tab.layout,主体放一个Viewpager组件。看看下面Acivitiy的代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/back"//背景猫 tools:context="com.bbg.myclock.MainActivity"> <include android:id="@+id/tabBar" layout="@layout/tab" /> //闹钟计时...那几个字 <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/tabBar"> </android.support.v4.view.ViewPager></RelativeLayout>
tab的代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:clipToPadding="true" android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tab1" android:textColor="@color/colorPrimary" android:textSize="18sp" android:gravity="center" android:layout_width="0dp" android:text="@string/page1name" //闹钟 android:layout_height="wrap_content" android:layout_weight="1"/> <TextView android:id="@+id/tab2" android:textColor="@color/colorPrimary" android:textSize="18sp" android:gravity="center" android:layout_width="0dp" android:text="@string/page2name" //计时 android:layout_height="wrap_content" android:layout_weight="1"/> <TextView android:id="@+id/tab3" android:textColor="@color/colorPrimary" android:textSize="18sp" android:gravity="center" android:layout_width="0dp" android:text="@string/timer" //倒计时 android:layout_height="wrap_content" android:layout_weight="1"/></LinearLayout>
那现在看看第一个闹钟的界面XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <AnalogClock //一个组件,可以看到时钟的 android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ac" android:layout_centerHorizontal="true"/> <Button android:backgroundTint="@color/transparentblue" //最下面添加按钮 android:text="@string/add" android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> <ListView android:divider="@color/divider" android:dividerHeight="1sp" android:layout_above="@id/btn1" //闹钟的列表 android:layout_below="@id/ac" android:id="@+id/naozhonglv" android:layout_width="wrap_content" android:layout_height="match_parent"> </ListView></RelativeLayout>
下面是计时的XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_centerHorizontal="true" android:layout_height="match_parent"><LinearLayout android:orientation="horizontal" android:layout_centerHorizontal="true" android:id="@+id/cm" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:gravity="center" android:layout_weight="3" android:text="0" android:textSize="48sp" android:textColor="@color/white" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/minute"/> <TextView android:layout_weight="1" android:text=":" android:textSize="48sp" android:textColor="@color/white" android:layout_width="0dp" android:layout_height="wrap_content" /> <TextView android:gravity="center" android:layout_weight="3" android:text="0" android:textSize="48sp" android:textColor="@color/white" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/second"/> <TextView android:layout_weight="1" android:text="." android:textSize="48sp" android:textColor="@color/white" android:layout_width="0dp" android:layout_height="wrap_content" /> <TextView android:gravity="center" android:layout_weight="3" android:text="0" android:textSize="48sp" android:textColor="@color/white" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/mills"/></LinearLayout> <android.support.v7.widget.ButtonBarLayout android:layout_width="match_parent" android:id="@+id/btnbar" android:layout_alignParentBottom="true" android:layout_height="wrap_content"> <Button android:text="@string/reset" android:backgroundTint="@color/transparent" android:id="@+id/reset" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" /> <Button android:textColor="@color/colorAccent" android:text="@string/stopT" android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content" android:backgroundTint="@color/transparent" android:id="@+id/stopT"/> <Button android:textColor="@color/green" android:backgroundTint="@color/transparent" android:text="@string/startT" android:layout_weight="2" android:id="@+id/startT" android:layout_width="0dp" android:layout_height="wrap_content" /> </android.support.v7.widget.ButtonBarLayout> <ListView android:layout_above="@id/btnbar" android:layout_below="@+id/cm" android:layout_width="match_parent" android:id="@+id/lv2" android:layout_height="match_parent"> </ListView></RelativeLayout>
下面是倒计时的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:focusableInTouchMode="true" android:focusable="true" android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp"> <com.bbg.myclock.mynumberpicker android:overScrollMode="always" android:id="@+id/hour" android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content"> </com.bbg.myclock.mynumberpicker> <TextView android:textColor="@color/white" android:id="@+id/tv1" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text=":" android:textSize="26sp" android:textStyle="bold" /> <com.bbg.myclock.mynumberpicker //可用自带的numberpicker android:id="@+id/minute" android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content"> </com.bbg.myclock.mynumberpicker> <TextView android:text=":" android:textColor="@color/white" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:textSize="26sp" android:textStyle="bold" /> <com.bbg.myclock.mynumberpicker android:id="@+id/second" android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content"> </com.bbg.myclock.mynumberpicker> </LinearLayout> <Button android:text="@string/startCount" android:id="@+id/btnok" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="26sp" android:textColor="@color/white" android:backgroundTint="#836e"/> <ProgressBar android:layout_margin="10dp" android:id="@+id/pb" android:backgroundTint="#a94d" android:layout_width="match_parent" android:layout_height="20dp" android:layout_above="@id/btnok" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"/> <TextView android:textColor="@color/white" android:textSize="48sp" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/pb" android:id="@+id/num"/></RelativeLayout>
好,那现在界面的XMl都有啦,现在把三个界面添加到Activity吧!
Activity中主要是有Viewpager,Viewpager有三个页面。 看看Activity!
public class MainActivity extends AppCompatActivity { TextView tv1,tv2,tv3; ViewPager viewPager; MyPageadapter pageadapter; //这个在下面的类里 long exit=0;//可忽略 @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initStatus(); //这个是使得状态栏透明 pageadapter=new MyPageadapter(getSupportFragmentManager()); FindID(); tv1.setTextColor(getResources().getColor(R.color.textselected)); tv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initTabColor(); tv1.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(0); } }); tv2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initTabColor(); tv2.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(1); } }); tv3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initTabColor(); tv3.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(2); } }); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { if (state==2){ switch (viewPager.getCurrentItem()){ case 0: initTabColor(); tv1.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(0); break; case 1: initTabColor(); tv2.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(1); break; case 2: initTabColor(); tv3.setTextColor(getResources().getColor(R.color.textselected)); viewPager.setCurrentItem(2); break; } } } }); } public void FindID(){ tv1=(TextView)findViewById(R.id.tab1); tv2=(TextView)findViewById(R.id.tab2); tv3=(TextView)findViewById(R.id.tab3); viewPager=(ViewPager)findViewById(R.id.viewpager); viewPager.setAdapter(pageadapter); viewPager.setCurrentItem(0); } public void initStatus(){ getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } public void initTabColor(){ tv1.setTextColor(getResources().getColor(R.color.colorPrimary)); tv2.setTextColor(getResources().getColor(R.color.colorPrimary)); tv3.setTextColor(getResources().getColor(R.color.colorPrimary)); }}下面的MypagerAdatper的java:
public class MyPageadapter extends FragmentPagerAdapter { FragClock fragClock = null; FragJishi fragJishi = null; FragCalendar fragCalendar=null;//没用 FragTimer fragTimer=null; public MyPageadapter(FragmentManager fm) { super(fm); fragClock=new FragClock(); fragJishi=new FragJishi(); fragCalendar=new FragCalendar();//没用 fragTimer=new FragTimer(); } @Override public Fragment getItem(int position) { Fragment fragment=null; switch (position){ case 0: fragment=fragClock; break; case 1: fragment=fragJishi; break; case 2: fragment=fragTimer; break; } return fragment; } @Override public int getCount() { return 3; } @Override public Object instantiateItem(ViewGroup container, int position) { return super.instantiateItem(container,position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container,position,object); }}
我们这一次先把界面实现了,下次实现功能。
这个是闹钟的
public class FragClock extends Fragment { @Nullable @Override public View onCreateView(final LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) { View view = inflater.inflate(R.layout.naozhong, null); return view;}}这个是秒表,计时的。
public class FragJishi extends Fragment { @Nullable @Override public View onCreateView(final LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) { View view = inflater.inflate(R.layout.jishi, null);return view;}}这个是倒计时Timer:public class FragTimer extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.timer, container, false);return view;}}
你们现在试一试,界面能不能实现出来!??如果界面有问题的,请及时留言哦~!!
下一期我们再来界面功能的问题~!
阅读全文
0 0
- 闹钟+秒表+倒计时三合一
- 定时器系列—定时器应用(时钟、倒计时、秒表和闹钟)
- android 秒表倒计时
- Javascript实现秒表倒计时
- MZTimerLabel 用作秒表或者倒计时
- 基于jquery的秒表倒计时
- MZTimerLabel 用作秒表或者倒计时
- html版电子表,秒表,倒计时
- Android实战第一篇——时钟+闹钟+计时器+秒表
- 使用CountDownTimer类实现倒计时小闹钟
- java小程序:闹钟(倒计时)
- 秒表
- 秒表
- 秒表
- 秒表
- 基于51单片机的99-00倒计时秒表
- 自定义ChronometerView实现类似秒表倒计时,短信验证码倒计时功能
- 播放器 倒计时 闹钟 日期 分秒 时间算法
- Python实现深度遍历和广度遍历
- 带缩略图的图片切换
- 十三周 项目1(4)
- win使用MSYS2安装Qt开发环境
- 做个记号
- 闹钟+秒表+倒计时三合一
- 拉格朗日乘子法如何理解?
- 欢迎使用CSDN-markdown编辑器
- HTTP协议
- 操作系统-页面置换算法-最近最久未使用算法
- VOT最新进展
- 月度文章
- 实现线性表
- 解决ScrollView嵌套RecyclerView无法滑动的问题