android側滑菜單
1. android怎麼實現類似qq那樣的右滑出現側拉菜單
Android 實現類似QQ側滑菜單,實現左右側滑 源碼。具有iOS 7/8 parallax effect 風格的側邊菜單,類似於最新版qq的菜單效果。ReisdeMenu 創意靈感來自於Dribbble1還有2,而這個是Android版的ResideMenu,在視覺效果上部分參考了iOS版的RESideMenu
2. android 怎樣讓drawerlayout設置的側滑菜單的內容充滿屏幕
布局文件中使用drawerLayout ,下麵包含兩個區,主內容區的布局代碼要放在側滑菜單布局的前面,側滑菜單的部分的布局可以設置layout_gravity屬性來表示在左邊還是右邊。
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
看代碼很清楚,但是如果說要讓側滑出來的菜單內容占滿整個屏幕的話,需要自己知道屏幕的width,ListView也就是菜單布局width設置一樣就可以了(不過設置為math_parent也大概只佔了百分之90左右,並不能完全覆蓋掉)。
3. android中我使用了drawerlayout實現側滑菜單,主界面是一個listview,為什麼
給側滑菜單布局添加屬性android:clickable="true"
4. android 側滑菜單 有誰知道京東商城分類中的側滑效果是怎樣實現的呢希望可以分享一下代碼。
這個我給你個代碼 你看看主要通過FrameLayout實現的!!
5. android studio 側滑刪除,下拉刷新怎麼做
1、SwipeMenuListView繼承ListView。
public class SwipeMenuListView extends ListView {11
2、重寫setAdapter方法,然後創建一個SwipeMenuLayout包含我們自己adapter中getView返回的View跟我們的側滑菜單。
@Override
public void setAdapter(ListAdapter adapter) {
super.setAdapter(new SwipeMenuAdapter(getContext(), adapter) {
@Override
public void createMenu(SwipeMenu menu) {
if (mMenuCreator != null) {
mMenuCreator.create(menu);
Log.e("TAG", "---createMenu--");
}
6. Android 滑動菜單(slide menu) 背景 亮度和透明度設置
首先在sdk目錄下source源碼目錄下搜索DrawerLayout文件,把相關的java文件導入工程
以5.0為例
@Override
protectedbooleandrawChild(Canvascanvas,Viewchild,longdrawingTime){
finalintheight=getHeight();
finalbooleandrawingContent=isContentView(child);
intclipLeft=0,clipRight=getWidth();
finalintrestoreCount=canvas.save();
if(drawingContent){
finalintchildCount=getChildCount();
for(inti=0;i<childCount;i++){
finalViewv=getChildAt(i);
if(v==child||v.getVisibility()!=VISIBLE||
!hasOpaqueBackground(v)||!isDrawerView(v)||
v.getHeight()<height){
continue;
}
if((v,Gravity.LEFT)){
finalintvright=v.getRight();
if(vright>clipLeft)clipLeft=vright;
}else{
finalintvleft=v.getLeft();
if(vleft<clipRight)clipRight=vleft;
}
}
canvas.clipRect(clipLeft,0,clipRight,getHeight());
}
finalbooleanresult=super.drawChild(canvas,child,drawingTime);
canvas.restoreToCount(restoreCount);
if(mScrimOpacity>0&&drawingContent){
/*
*這里是直接用畫筆畫了一層有透明度的方塊覆蓋在主內容上方,產生慢*慢變暗的效果,所以我們只需要在這里修改即可,
*根據代碼邏輯可以知道我們只需要改變imag即可
*/
finalintbaseAlpha=(mScrimColor&0xff000000)>>>24;
finalintimag=(int)(baseAlpha*mScrimOpacity);
finalintcolor=imag<<24|(mScrimColor&0xffffff);
mScrimPaint.setColor(color);
canvas.drawRect(clipLeft,0,clipRight,getHeight(),mScrimPaint);
}elseif(mShadowLeft!=null&&(child,Gravity.LEFT)){
finalintshadowWidth=mShadowLeft.getIntrinsicWidth();
finalintchildRight=child.getRight();
finalintdrawerPeekDistance=mLeftDragger.getEdgeSize();
finalfloatalpha=
Math.max(0,Math.min((float)childRight/drawerPeekDistance,1.f));
//這里是繪制菜單的覆蓋物
mShadowLeft.setBounds(childRight,child.getTop(),
childRight+shadowWidth,child.getBottom());
mShadowLeft.setAlpha((int)(0xff*alpha));
mShadowLeft.draw(canvas);
}elseif(mShadowRight!=null&&(child,Gravity.RIGHT)){
finalintshadowWidth=mShadowRight.getIntrinsicWidth();
finalintchildLeft=child.getLeft();
finalintshowing=getWidth()-childLeft;
finalintdrawerPeekDistance=mRightDragger.getEdgeSize();
finalfloatalpha=
Math.max(0,Math.min((float)showing/drawerPeekDistance,1.f));
mShadowRight.setBounds(childLeft-shadowWidth,child.getTop(),
childLeft,child.getBottom());
mShadowRight.setAlpha((int)(0xff*alpha));
mShadowRight.draw(canvas);
}
returnresult;
}
改變代碼之後保存
這時候在布局文件中就不要使用android-supportv4包下的DrawerLayout的,改成你工程里修改後的DrawerLayout,運行就達到效果了
7. 安卓大神們,請教一下,這個美食天下的應用中,側滑欄菜譜裡面,有很多圓圈,點擊圓圈會展開詳情子選項,
actionbar
8. android側滑菜單的狀態欄一體化怎麼去實現
首先是兩個開啟沉浸模式和關閉沉浸模式的函數 ? @SuppressLint("NewApi") public static void hideSystemUI(View view) { view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN View.SYSTEM_UI_FLAG_HIDE_NAVIGATION View.SYSTEM_UI_FLAG_FULLSCREEN View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } @SuppressLint("NewApi") public static void showSystemUI(View view) { view.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } 這些代碼可以在google的開發者文檔中找到,可以看這里Using Immersive Full-Screen Mode,上面的代碼是在Android 4.4中才會生效,對應的Android版本兼容的判斷請自行處理。 此外還需要一個輔助函數,用於獲得狀態欄高度,使用反射獲得。 ? /** * 獲狀態欄高度 * * @param context 上下文 * @return 通知欄高度 */ public int getStatusBarHeight(Context context) { int statusBarHeight = 0; try { Class<?> clazz = Class.forName("com.android.internal.R$dimen"); Object obj = clazz.newInstance(); Field field = clazz.getField("status_bar_height"); int temp = Integer.parseInt(field.get(obj).toString()); statusBarHeight = context.getResources().getDimensionPixelSize(temp); } catch (Exception e) { e.printStackTrace(); } return statusBarHeight; } 點擊hide按鈕進入沉浸模式,也就是隱藏狀態欄,隱藏狀態欄的同時我們需要修改Toolbar的上內邊距,否則會顯得很難看,這里注冊一個監聽,當進入沉浸模式後我們改變Toolbar的上內邊距 ? hide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { View view = getWindow().getDecorView(); hideSystemUI(view); mToolbar.set(new View.() { @Override public void onSystemUiVisibilityChange(int visibility) { mToolbar.setPadding(mToolbar.getPaddingLeft(), 0,mToolbar.getPaddingRight(), mToolbar.getPaddingBottom()); } }); } }); 進入沉浸模式後,手指從屏幕頂部向下劃,狀態欄就出現了,過2秒左右它又會自動消失。 點擊show按鈕退出沉浸模式,同時Toolbar的內邊距也要增加到狀態欄的高度。 ? show.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { View view = getWindow().getDecorView(); showSystemUI(view); mToolbar.set(new View.() { @Override public void onSystemUiVisibilityChange(int visibility) { mToolbar.setPadding(mToolbar.getPaddingLeft(), getStatusBarHeight(MainActivity.this),mToolbar.getPaddingRight(), mToolbar.getPaddingBottom()); } }); } }); 如果使用的是SystemBarTintManager這個類進行的狀態欄的著色,除上方的操作外,還要在對應的監聽里增加狀態欄著色的禁止和啟動的功能。 進入沉浸模式,要禁用 ? tintManager.setStatusBarTintEnabled(false); 退出沉浸模式,要啟動 ? tintManager.setStatusBarTintEnabled(true); 如果你想更加平滑,則可以對padding的改成增加動畫,具體動畫效果自行添加。
9. AS3限制android滑動范圍,或滾動菜單的製作方法~菜鳥血淚求教!!
你老闆確實無良啊。不過對你也是個機會,公司創建條件,你多學點東西也是好的。
個人給你一點建議,不要用flash來實現這個功能,用flex去寫會容易很多(flex上沒有時間軸的概念,估計你也要郁悶一會)。創建一個手機工程,然後用list可以很輕松實現,稍微做點改動就能實現你要的效果。或者實在做不了,讓你老闆2000塊錢包出去,有的是人做
10. android studio側滑drawerlayout怎麼加入幾個button在側滑欄里
很簡單,你的雙腳沒有保持平行一直線上。 或者你側滑之前有旋轉動作!