<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 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=10000 setProgress(6000); } ~~~ (4)對話框式進度條 ~~~ btnDia=(Button) findViewById(R.id.btnDia); btnDia.setOnClickListener(new View.OnClickListener() { @Override public 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() { @Override public 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)改寫物理按鍵——返回的邏輯 ![](https://box.kancloud.cn/2016-04-06_5704ccec0c6c4.jpg) (5) ![](https://box.kancloud.cn/2016-04-06_5704ccec2b984.jpg) (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; } // 返回的是頁卡的數量 @Override public int getCount() { // TODO Auto-generated method stub return viewList.size(); } // View是否來自與對象 @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } // 實例化一個頁卡 @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } // 銷毀頁卡 @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } //設置ViewPager頁卡的標題 @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return titleList.get(position); } } ~~~ MainActivity : ~~~ public class MainActivity extends Activity { private List<View> viewList; private ViewPager viewPager; private List<String> titleList; private PagerTabStrip tabStrip; @Override protected 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); //初始化ViewPager viewPager=(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); } @Override public 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; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看