- 浏览: 115661 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhifeiji512:
George_ghc 写道第一段代码给cursor赋值第二段代 ...
Android中Cursor关闭的问题
关于SlidingDrawer控件
1.重要属性
android:allowSingleTap:指示是否可以通过handle打开或关闭
android:animateOnClick:指示是否当使用者按下手柄打开/关闭时是否该有一个动画。
android:content:隐藏的内容
android:handle:handle(手柄)
2.重要方法
animateClose():关闭时实现动画。
close():即时关闭
getContent():获取内容
isMoving():指示SlidingDrawer是否在移动。
isOpened():指示SlidingDrawer是否已全部打开
lock():屏蔽触摸事件。
setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener):SlidingDrawer关闭时调用
unlock():解除屏蔽触摸事件。
toggle():切换打开和关闭的抽屉SlidingDrawer。
实例:
自定义SlidingDrawer控件,为得是在SlidingDrawer关闭的状态下,显示content内容
package com.borqs.music.lyric; import android.content.Context; import android.graphics.Canvas; import android.provider.ContactsContract.CommonDataKinds.Event; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.SlidingDrawer; public class LyricSlidingDrawer extends SlidingDrawer { public LyricSlidingDrawer(Context paramContext, AttributeSet paramAttributeSet) { this(paramContext, paramAttributeSet, 0); } public LyricSlidingDrawer(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); } @Override protected void dispatchDraw(Canvas canvas) { long time = getDrawingTime(); View handle = super.getHandle(); View content = super.getContent(); drawChild(canvas, handle, time); if (!isOpened() || isMoving()) { canvas.save(); float f2 = handle.getBottom() - content.getTop(); canvas.translate(0, f2); drawChild(canvas, content, time); canvas.restore(); } else { super.dispatchDraw(canvas); } } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == Event.OFFLINE) { int i = super.getHandle().getBottom(); int j = (int)event.getY(); if (j > i) { int k = i+20; if (j <= k) { animateToggle(); } } } return super.onTouchEvent(event); } }
SlidingDrawer完全打开时隐藏专辑图片,完全关闭时显示专辑图片:
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.widget.ImageView; public class NowPlay extends Activity { private static final String TAG = "NowPlay"; private LyricSlidingDrawer mSlidingDrawer; private ImageView mHandle; @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, "onCreate()"); super.onCreate(savedInstanceState); setContentView(R.layout.now_play); mSlidingDrawer = (LyricSlidingDrawer) findViewById(R.id.lyrics_sliding_drawer); mHandle = (ImageView) findViewById(R.id.lyrics_handle_image); //监听打开抽屉事件 mSlidingDrawer.setOnDrawerOpenListener(new C_SlidingDrawer.OnDrawerOpenListener() { @Override public void onDrawerOpened() { mHandle.setImageResource(R.drawable.lyrics_handle_expand); AlphaAnimation animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(1000); animation.setStartOffset(500); animation.setAnimationListener(new fadeAnimationListener()); mAlbum.startAnimation(animation); } }); //监听关闭抽屉事件 mSlidingDrawer.setOnDrawerCloseListener(new C_SlidingDrawer.OnDrawerCloseListener() { @Override public void onDrawerClosed() { mHandle.setImageResource(R.drawable.lyrics_handle_shrink); AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f); animation.setDuration(1000); animation.setStartOffset(500); animation.setAnimationListener(new fadeAnimationListener()); mAlbum.startAnimation(animation); } }); } private class fadeAnimationListener implements AnimationListener{ public void onAnimationEnd(Animation animation) { } public void onAnimationRepeat(Animation animation) { } public void onAnimationStart(Animation animation) { if (mSlidingDrawer.isOpened()) { mAlbum.setVisibility(View.GONE); findViewById(R.id.rs_button_area).setVisibility(View.GONE); } else { mAlbum.setVisibility(View.VISIBLE); } } }
所使用的Layout, 注意SlidingDrawer的相对位置!
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/parent"> <TextView android:id="@+id/trackname" android:textSize="18sp" android:singleLine="true" android:ellipsize="end" android:layout_gravity="center" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dip" android:layout_alignParentTop="true" /> <ImageView android:id="@+id/album" android:layout_below="@id/trackname" android:layout_centerHorizontal="true" android:background="@drawable/album_border_large" android:layout_width="180dip" android:layout_height="180dip" android:layout_marginTop="8dip"/> <com.borqs.music.lyric.LyricSlidingDrawer android:id="@+id/lyric_slidingdrawer" android:layout_below="@id/trackname" android:layout_above="@id/player_common_area" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:handle="@+id/handle" android:content="@+id/lyric_view" android:bottomOffset="-75dip" android:topOffset="0dip" android:animateOnClick="true"> <ImageButton android:id="@id/handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/lyr_handle_collapse_xml"/> <com.borqs.music.lyric.LyricsView android:id="@id/lyric_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="2dip" android:paddingBottom="2dip" android:paddingLeft="2dip" android:paddingRight="2dip"/> </com.borqs.music.lyric.LyricSlidingDrawer> </RelativeLayout>
发表评论
-
repo用法
2012-03-16 14:24 1201repo用法(转载) http://blogold ... -
Git使用指南
2012-03-15 14:43 8471.创建目录 $ git config --glo ... -
关于Android的多种屏幕支持
2011-12-14 14:23 1217首先是几个基本概 ... -
android ListView 修改背景
2011-12-14 09:39 1821修改listview时存在的 ... -
详解android:scaleType属性
2011-11-28 17:09 6352android:scaleType是控制图片如何res ... -
Android使用AIDL设计和调用远程接口
2011-11-24 18:14 3980在Android中, 每个应 ... -
Android开发 系统应用调用,Intent使用总结
2011-11-09 09:48 1299转载来源网上资料。 显示网页: 1. Ur ... -
ListView结合ContextMenu 获取点击项的Position
2011-11-07 17:35 1423ContextMenu称为上下文菜单,一般在控件上长按时 ... -
List of Android MIME types and Uri's
2011-11-07 16:35 1568This is a list of URIs that can ... -
隐藏输入法
2011-11-07 14:16 796在manifest里设置,android:windowSoft ... -
Android通知及receiver
2011-10-24 15:09 37621. BroadcastReceiver Broadc ... -
Notification
2011-10-21 16:49 1541可以给Notification设置缺省的表现形式: ... -
Android获取其他包的Context实例
2011-10-20 11:17 830Android中有Context ... -
Android 中Message,MessageQueue,Looper,Handler详解+实例
2011-10-18 13:23 876一、几个关键概念 ... -
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
2011-10-18 13:21 1039转自:http://www.blogjava.ne ... -
免费的Android UI库及组件推荐
2011-10-18 13:10 2962转自:http://www.iteye.com/news/22 ... -
众多Android 开源项目推荐,给力工作给力学习
2011-10-18 11:54 619转自:http://www.cnblogs.com/Terry ... -
下拉刷新
2011-10-18 11:10 749下拉刷新 参考代码 https://gith ... -
canvas.translate(x,y)理解
2011-10-17 15:59 2641translate(float x,float y)函数是将整 ... -
android.view.WindowManager$BadTokenException: Unable to add window
2011-09-28 10:19 1756android.view.WindowManager$B ...
相关推荐
Android SlidingDrawer控件的使用。开发环境Android studio3.0版本
Android Launcher抽屉类SlidingDrawer的使用
实用的 Android SlidingDrawer抽屉效果
Android学习笔记(二四):多页显示SlidingDrawer的使用
网络上关于slidingdrawer我资料不太完整,都是1.5的包。在现在不能用。此资源已经转成2.2版本的。有兴趣可以下一下。
android slidingdrawer实例
这是一个SlidingDrawer抽屉控件的展示,抽屉里面的内容是一个gridview,gridview的内容是通过PackageManager读取手机安装的软件,适合初学者学习。
安卓中1.5后加入了SlidingDrawer【隐藏式抽屉】,设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这个隐藏式抽屉。用SlidingDrawer注意两点,一个是android:handle(委托要展开的图片加载...
Android自带SlidingDrawer实例,即只能从下往上拖动,供初学者参考。
Android SlidingDrawer
SlidingDrawer抽屉式滑动效果
这是我自己编写的一个android 的slidingdrawer应用 效果还可以 希望可以帮助到刚刚学习android的朋友
四个方向的SlidingDrawer实例,供初学者参考。
这是一款不错的安卓SlidingDrawer抽屉控件案例,该案例的演示也很简单的,而且源码也很容易看得懂,非常适合一些新手的使用与学习,大家不妨去看看吧。
这个范例非常非常非常的好,实现了从屏幕的任何方向拉出抽屉,值得借鉴……
自定义slidingdrawer,部分数据不隐藏。
简单实现的左侧点击按钮 slidingdrawer,里面把复杂的界面实现都去掉了,可以直接把xml中的content替换掉
Aj_01 来自:http://blog.csdn.net/Android_Tutor/archive/2010/04/14/5486804.aspx 测试:Android Launcher抽屉类SlidingDrawer的使用!
自定义四个方向上的SlidingDrawer(抽屉效果)效果查看地址:http://blog.csdn.net/xiaoyi_tdcq/article/details/43448851