日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Drawer Arrow Drawable(meun-icon-to-back-arrow)使用,仿知乎菜單欄界面

Drawer Arrow Drawable(meun-icon-to-back-arrow)使用,仿知乎菜單欄界面

來源:程序員人生   發布時間:2015-06-01 09:05:18 閱讀次數:7661次

Drawer Arrow Drawable(meun-icon-to-back-arrow)使用,仿知乎菜單欄界面

1、甚么是Drawer Arrow Drawable

Drawer Arrow Drawable 其實就是1個抽屜側滑菜單欄,只不過加入了很酷炫的meun-icon-to-back-arrow動畫效果,以下圖所示



2、Drawer Arrow Drawable的實現原理

設計方法:

我的想法是:如果我能生成每條線末真個移動曲線,我就可以隨抽屜(drawer)的滑動,根據參數t簡單地計算出每條路徑(path)上的點,
然后只需從curveA上的點M向curveB上的N繪制1條直線便可。

為了生成這些曲線,我需要1個合適取用的點的集合案例。我首先想到我應當在打開抽屜的時候,從我的裝備上錄制視頻,分成N幀。但是我突然
想到:抽屜滑動時的插值器會使得這些幀不能均勻散布。不用太復雜,我只是粗略地移動抽屜,然后對每步截屏。

 

這兒,我把所有的圖象放在Adobe Illustrator上,并用1條向量追蹤1條線(方便縮放:6pt等于6px),這是1個勞動密集型的進程,
充滿了大量的毛病;畢竟,6個像素加抗鋸齒是1種低精度,相對要使用到的數學方法


3、Drawer arrow Drawable的使用

package com.example.ldrawertest; import com.example.ldrawerlibrary.ActionBarDrawerToggle; import com.example.ldrawerlibrary.DrawerArrowDrawable; import android.annotation.SuppressLint; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private DrawerArrowDrawable drawerArrow; private boolean drawerArrowColor; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到1個actionbar ActionBar ab = getActionBar(); // 給左上角圖標的左側加上1個返回的圖標 ab.setDisplayHomeAsUpEnabled(true); //必須通過調用setHomeButtonEnabled(true)方法確保這個圖標能夠作為1個操作項 ab.setHomeButtonEnabled(true); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); //抽屜側欄的布局,為1個listView mDrawerList = (ListView) findViewById(R.id.navdrawer); //創建DrawerArrow drawerArrow = new DrawerArrowDrawable(this) { @Override public boolean isLayoutRtl() { return false; } }; /* * ActionBarDrawerToggle 是 DrawerLayout.DrawerListener實現。 和 NavigationDrawer 搭配使用,推薦用這個方法,符合Android design規范。 作用: 1.改變android.R.id.home返回圖標。 2.Drawer拉出、隱藏,帶有android.R.id.home動畫效果。 3.監聽Drawer拉出、隱藏; */ //動作條抽屜切換器將抽屜與app icon動作條綁定正確交互。 mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, drawerArrow, R.string.drawer_open, R.string.drawer_close) { //當抽屜關閉時 public void onDrawerClosed(View view) { super.onDrawerClosed(view); /* * getActivity().invalidateOptionsMenu(); * 在運行時改變menu item的狀態。你需要重寫onPrepareOptionsMenu() , * 它方便你對item移除,添加,使不可用等。在android 3.0以上, * 你必須調用invalidateOptionsMenu() 。 * */ invalidateOptionsMenu(); } //當抽屜打開時 public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); invalidateOptionsMenu(); } }; //設置監聽drawer切換 mDrawerLayout.setDrawerListener(mDrawerToggle); //該方法會自動和actionBar關聯, 將開關的圖片顯示在了action上,如果不設置,也能夠有抽屜的效果,不過是默許的圖標 mDrawerToggle.syncState(); //設置LDrawer填充內容,通過Adapter填充 String[] values = new String[]{ " 用戶名", " 發現", " 關注", " 收藏", " 草稿", " 發問", " 設置" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); mDrawerList.setAdapter(adapter); //抽屜側欄設置點擊事件 mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch (position) { case 0: mDrawerToggle.setAnimateEnabled(false);//設置停止或開啟動畫 drawerArrow.setProgress(1f);//設置普通菜單圖標模式 break; case 1: mDrawerToggle.setAnimateEnabled(false); drawerArrow.setProgress(0f);//設置返回箭頭模式 break; case 2: mDrawerToggle.setAnimateEnabled(true); mDrawerToggle.syncState(); break; case 3: if (drawerArrowColor) { drawerArrowColor = false; // drawerArrow.setColor(R.color.ldrawer_color);//設置色彩 } else { drawerArrowColor = true; // drawerArrow.setColor(R.color.drawer_arrow_second_color); } mDrawerToggle.syncState(); break; case 4: Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/IkiMuhendis/LDrawer")); startActivity(browserIntent); break; case 5: Intent share = new Intent(Intent.ACTION_SEND); share.setType("text/plain"); share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); share.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name)); share.putExtra(Intent.EXTRA_TEXT, getString(R.string.app_description) + " " + "GitHub Page : https://github.com/IkiMuhendis/LDrawer " + "Sample App : https://play.google.com/store/apps/details?id=" + getPackageName()); startActivity(Intent.createChooser(share, getString(R.string.app_name))); break; case 6: String appUrl = "https://play.google.com/store/apps/details?id=" + getPackageName(); Intent rateIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(appUrl)); startActivity(rateIntent); break; } } }); } //菜單鍵點的事件處理 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { if (mDrawerLayout.isDrawerOpen(mDrawerList)) { mDrawerLayout.closeDrawer(mDrawerList); } else { mDrawerLayout.openDrawer(mDrawerList); } } return super.onOptionsItemSelected(item); } //activity創完成后 @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } //配置改變時 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } }



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91久久久久久久一区二区 | 国产精品久久久久久久免费大片 | www欧美 | 日韩欧美网| 免费成人av网站 | 秋霞视频在线观看 | 欧美日韩国产三区 | 欧美成人在线免费视频 | 亚洲免费在线看 | 国产日韩视频在线 | 天堂a在线| a在线免费观看 | 亚洲国产天堂久久综合 | 久久精品99国产精品日本 | 韩国福利一区 | 亚洲乱码国产乱码精品精 | 亚洲欧洲无码一区二区三区 | 精品成人网 | av黄色在线观看 | 中文日韩 | 羞羞的视频网站 | 国产精品中文字幕在线 | 久久99久久精品 | 成人91看片| 国产精品久久久久久久久久久久久久 | 欧美日韩高清 | 成人激情视频在线观看 | 亚洲美女av网站 | 欧美在线三区 | 国产一区福利 | 国产日韩一区二区 | 99久久精品国产毛片 | 国产精品综合一区二区 | 99re在线视频免费观看 | 欧美一区二区三区免费看 | 免费黄色小片 | 91精品久久久久久久久99绯色 | 欧美 日韩 国产 在线 | 久久免费国产精品1 | 免费在线观看 av | 精品久久久精品 |