1、ProgressBar

(1)属性:
android:max="100" ; ——最大显示进度
android:progress="50" ; ——第一显示进度
android:secondaryProgress="80" ; ——第二显示进度
android:indeterminate="true" ; ——设置是否精确显示(true表示不精确显示)
(2)方法:
setProgress(int) ; ——设置第一进度
setSecondaryProgress(int) ; ——设置第二进度
getProgress( ) ; ——获取第一进度
getSecondaryProgress( ) ; ——获取第二进度
incrementProgressBy( int ) ; ——增加或者减少第一进度
incrementSecondaryProgressBy (int ) ; ——增加或者减少第二进度
getMax( ) :获取最大进度
(3)在标题栏上上设置
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//启用窗口特征,启用带进度和不带进度的进度条requestWindowFeature(Window.FEATURE_PROGRESS);requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setContentView(R.layout.activity_main);//显示两种进度条setProgressBarVisibility(true);setProgressBarIndeterminateVisibility(true);//MAX=10000setProgress(6000);}
(4)对话框式进度条
                btnDia=(Button) findViewById(R.id.btnDia);btnDia.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {         /*设置页面显示风格*///新建ProgressDialog对象progressDialog=new ProgressDialog(MainActivity.this);//设置显示风格(横向)progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置标题progressDialog.setTitle("对话框式进度条");//设置图标progressDialog.setIcon(R.drawable.ic_launcher);//设置对话框里的文字信息progressDialog.setMessage("欢迎你!");//设置"确定"按钮progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "这是对话框式进度条!", Toast.LENGTH_LONG).show();}});//设置是否通过返回按钮退出对话框progressDialog.setCancelable(true);/*设置关于ProgressBar的属性*///设置最大进度progressDialog.setMax(100);//设置初始化已经增长到的进度progressDialog.incrementProgressBy(20);//进度条是明确显示进度的progressDialog.setIndeterminate(false);//显示对话框progressDialog.show();}});
(5)自定义ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"   //Ctrl+左键 查看<style name="Widget.ProgressBar.Horizontal">        <item name="android:indeterminateOnly">false</item>        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>        <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>        <item name="android:minHeight">20dip</item>        <item name="android:maxHeight">20dip</item>        <item name="android:mirrorForRtl">true</item>    </style>//继续查看@android:drawable
新建一个自己的progress_horizontal.xml文件,去覆盖系统的。(复制原来的,在原来的基础上进行修改)然后在ProgressBar属性中添加:
        android:progressDrawable="@drawable/progress_horizontal"

2、WebView显示网页

(引言:可以通过Intent调用系统浏览器,直接实现跳转)
(1)权限: <uses-permission android:name="android.permission.INTERNET"/>
(2)加载:A.本地文件:webView.loadUrl( "file:///android_asset/example.html") //本地文件存放在assets目录下

B.加载Web资源:webView.loadUrl("http://www.baidu.com")

C.覆盖WebView默认通过第三方或者系统浏览器打开网页的行为,使得网页可以在WebView中打开

webView.setWebViewClient(new WebViewClient(){   //WebViewClient帮助WebView去处理一些页面控制和请求通知       ......       return true       ......});
D.获得当前WebView的URL:webView.getUrl( );
(3)在WebView中使用Javascript
WebSettings webSettings = webView.getSettings();   //获取WebSettings的值webSettings.setJavaScriptEnabled(true);            //启用JavaScript
(4)改写物理按键——返回的逻辑

(5)

(6)WebView缓存的运用
A.优先使用缓存:webView.getSettings( ).setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

B. 不使用缓存 :webView.getSettings( ).setCacheMode(WebSettings.LOAD_NO_CACHE);

3、Fragment——主要目的是用在大屏幕设备上,支持更加动态和灵活的UI设计。

Fragment在应用中应当是一个模块化和可重用的组件,因为Fragment定义了自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,所以可以将Fragment包含到多个Activity中。

(1)Fragment可以作为Activity界面的一部分组成出现;可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用;在Activity运行过程中,可以添加、移除或者替换Fragment;Fragment可以相应自己的输入事件,并且有自己的声明周期,它们的生命周期会受宿主Activity的生命周期的影响。

(2)静态加载——在Activity的Layout文件中声明Fragment
A.android:name属性:指定了在layout中实例化的Fragment类
B.android:id属性:提供了一个唯一ID 来标识
C.android:tag属性:提供了一个唯一的字符串 来标识

(3)动态加载——撰写代码将Fragment添加到一个Activity layout中(处理Fragment事务)
A.开启事务:FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
B.执行的操作:add(); remove(); replace(); addToBackStack(); commit();

(4)声明周期:
A.onCreateView:每次创建都会绘制Fragment的View组件时回调该方法
B.onAttach:当Fragment被添加到Activity时候会回调这个方法,并且只调用一次
C.onCreate:创建Fragment时会回调,只会调用一次
D.onActivityCreated:当Fragment所在的Activty启动完成后调用
E.onStart:启动Fragment
F.onResume:恢复Fragment时会被回调,调用onStart()方法后面一定会调用onResume()方法
G.onPause:暂停Fragment
H.onStop:停止Fragment
I. onDestroyView:销毁Fragment所包含的View组件时
J.onDestroy:销毁Fragment时会被回调
K.onDetach:Fragment从Activity中删除时会回调该方法,并且这个方法只会调用一次

(5)与Activity传值通信:
A. Fragment调用getActivity()方法获取它所在的Activity;
Activity调用FragmentManager的findFragmentById()或者findFragmentByTag()方法获取Fragment;
B. Activity——》Fragment:在Activity中创建Bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法;
Fragment——》Activity:需要在Fragment中定义一个内部回调接口,让包含该Fragment的Activity实现该回调接口。这样Fragment可调用回调方法将数据传递给Activity。

4、ViewPager使视图左右滑动(类似微信界面)

(1)加载显示的页卡:
A. layoutInflater if = getLayoutInflater().from(this);
if.inflate(resource,root);
B. View.inflate(context,resource,root);

(2)配置Adapter:
A. PagerAdapter 数据源:List<View>;
B. FragmentPagerAdapter 数据源:List<Fragment>;
C.FragmentStatePagerAdapter 数据源:List<Fragment>;
(3)监听器
OnPageChangeListener
简单粘一下实现代码:

<android.support.v4.view.ViewPager        android:id="@+id/pager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center" >        <android.support.v4.view.PagerTabStrip            android:id="@+id/pagerTab"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="top" >        </android.support.v4.view.PagerTabStrip>                    </android.support.v4.view.ViewPager>
数据适配器:
public class MyPagerAdapter extends PagerAdapter {private List<View> viewList;private List<String> titleList;public MyPagerAdapter(List<View> viewList, List<String> titleList) {this.viewList = viewList;this.titleList = titleList;}// 返回的是页卡的数量@Overridepublic int getCount() {// TODO Auto-generated method stubreturn viewList.size();}// View是否来自与对象@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}// 实例化一个页卡@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(viewList.get(position));return viewList.get(position);}// 销毁页卡@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(viewList.get(position));}//设置ViewPager页卡的标题@Overridepublic CharSequence getPageTitle(int position) {// TODO Auto-generated method stubreturn titleList.get(position);}}
MainActivity :
public class MainActivity extends Activity {private List<View> viewList;private ViewPager viewPager;private List<String> titleList;private PagerTabStrip tabStrip;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewList=new ArrayList<View>();//通过View对象作为ViewPager的数据源View view1=View.inflate(this, R.layout.view1, null);View view2=View.inflate(this, R.layout.view2, null);View view3=View.inflate(this, R.layout.view3, null);View view4=View.inflate(this, R.layout.view4, null);viewList.add(view1);viewList.add(view2);viewList.add(view3);viewList.add(view4);//初始化ViewPagerviewPager=(ViewPager) findViewById(R.id.pager);//为ViewPager设置标题titleList=new ArrayList<String>();titleList.add("第一页");titleList.add("第二页");titleList.add("第三页");titleList.add("第四页");//为PagerTabStrip设置一些属性tabStrip=(PagerTabStrip) findViewById(R.id.pagerTab);tabStrip.setBackgroundColor(Color.BLUE);tabStrip.setTextColor(Color.RED);tabStrip.setDrawFullUnderline(false);tabStrip.setTabIndicatorColor(Color.GREEN);//创建PagerAdapter的适配器MyPagerAdapter adapter=new MyPagerAdapter(viewList,titleList);//ViewPager加载适配器viewPager.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

更多相关文章

  1. Android启动过程
  2. 一些常用到的android前端布局属性
  3. Android(安卓)RecyclerView 设置显示滚动条属性后,滚动条不显示踩
  4. android xml控件属性
  5. 3.Spinner
  6. Android(安卓)8.1 zygote创建新应用进程
  7. Android(安卓)API中文文档EditText
  8. 】Android横竖屏总结
  9. Android(安卓)API中文文档ImageView

随机推荐

  1. Vue自定义指令详细
  2. 怎么画漫画人物的嘴巴?漫画人物嘴巴新手教
  3. android版本更新功能
  4. Android中获取当前屏幕的尺寸大小
  5. Android之获取加载图片宽高问题(getIntrin
  6. Android开发错误信息收集
  7. JS判断是IOS还是Android,判断是否微信浏览
  8. Android异步处理特性之AsyncTask
  9. Android(安卓)面试总结
  10. android 从驱动到应用(二)