类似微博快速操作弹出界面
2015-09-18 17:16
267 查看
如图:由于项目中要用到类似的功能,所以就网上找了找资料,其实这只是个自定义的对话框,将内容显示到底部,
自定义控件:QuickOptionDialog.java
资源文件:
调用:
通过改变布局,我们可以自己做出很好看的样式来
自定义控件:QuickOptionDialog.java
package com.juguo.activity; import com.juguo.cletter.R; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.Display; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.LinearInterpolator; import android.widget.ImageView; public class QuickOptionDialog extends Dialog implements android.view.View.OnClickListener { private ImageView mClose; public interface OnQuickOptionformClick { void onQuickOptionClick(int id); } private OnQuickOptionformClick mListener; private QuickOptionDialog(Context context, boolean flag, OnCancelListener listener) { super(context, flag, listener); } @SuppressLint("InflateParams") private QuickOptionDialog(Context context, int defStyle) { super(context, defStyle); View contentView = getLayoutInflater().inflate( R.layout.dialog_quick_option, null); mClose = (ImageView) contentView.findViewById(R.id.iv_close); Animation operatingAnim = AnimationUtils.loadAnimation(getContext(), R.anim.quick_option_close); LinearInterpolator lin = new LinearInterpolator(); operatingAnim.setInterpolator(lin); mClose.startAnimation(operatingAnim); mClose.setOnClickListener(this); requestWindowFeature(Window.FEATURE_NO_TITLE); contentView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { QuickOptionDialog.this.dismiss(); return true; } }); super.setContentView(contentView); } public QuickOptionDialog(Context context) { this(context, R.style.quick_option_dialog); } @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); getWindow().setGravity(Gravity.BOTTOM); WindowManager m = getWindow().getWindowManager(); Display d = m.getDefaultDisplay(); WindowManager.LayoutParams p = getWindow().getAttributes(); p.width = d.getWidth(); getWindow().setAttributes(p); } public void setOnQuickOptionformClickListener(OnQuickOptionformClick lis) { mListener = lis; } @Override public void onClick(View v) { final int id = v.getId(); switch (id) { default: break; } if (mListener != null) { mListener.onQuickOptionClick(id); } dismiss(); } private void onClickTweetPub(int id) { Bundle bundle = new Bundle(); int type = -1; switch (id) { default: break; } } private void onClickNote() { } }
资源文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/set_pop" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@drawable/day_list_item_background" > <LinearLayout android:id="@+id/ll_option_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp" android:layout_marginBottom="20dp" android:background="@drawable/corner_notice" android:orientation="vertical" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:padding="10.0dip" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/avatar_img_loading" /> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:orientation="vertical" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/tv_recept_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名:张三" android:textColor="@drawable/actionbar_back" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:text="xxxx" /> </RelativeLayout> <TextView android:layout_width="fill_parent" android:layout_height="1.0px" android:layout_marginTop="5dp" android:background="#ffdddddd" /> <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ellipsize="end" android:maxLines="5" android:text="xxxxxx" android:textSize="15dp" /> </LinearLayout> </LinearLayout> </RelativeLayout> <TextView android:layout_width="fill_parent" android:layout_height="1.0px" android:layout_marginTop="5dp" android:background="#ffdddddd" /> <TextView android:id="@+id/money" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:gravity="right|center_vertical" android:maxLines="5" android:padding="8dp" android:text="xxxxxxx" android:textSize="15dp" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="80dp" > </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1.0px" android:layout_marginTop="5dp" android:background="#ffdddddd" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tv_msg" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/bg_form_list_item" android:gravity="center" android:padding="15dp" android:text="xxxxxx" android:textColor="@drawable/actionbar_back" android:textSize="15dp" /> <View android:layout_width="1dp" android:layout_height="fill_parent" android:layout_margin="5dp" android:background="#ffdddddd" /> <TextView android:id="@+id/tv_dial" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/bg_form_list_item" android:gravity="center" android:padding="15dp" android:text="xxxx" android:textColor="@drawable/actionbar_back" android:textSize="15dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/ll_foot" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/ll_option_container" android:background="@color/day_layout_bg_normal" android:gravity="center" android:padding="10dip" android:visibility="visible" > <ImageView android:id="@+id/iv_close" android:layout_width="35dp" android:layout_height="35dp" android:contentDescription="@null" android:focusable="false" android:src="@drawable/btn_quickoption_route" android:visibility="gone" /> </LinearLayout> </RelativeLayout>
调用:
// 显示快速操作界面 @OnClick(R.id.iv_call) public void showQuickOption() { final QuickOptionDialog dialog = new QuickOptionDialog( TelePhoneyActivity.this); dialog.setCancelable(true); dialog.setCanceledOnTouchOutside(true); dialog.show(); }
通过改变布局,我们可以自己做出很好看的样式来
相关文章推荐
- ThreadLocal可能引起的内存泄露(转)
- click ajax数据不能点击触发,使用live
- THINKPHP介绍
- jquery 事件详细
- 使用Eclipse构建Maven项目 (step-by-step)
- 小Y的炮 cannon题解
- 通过添加dns加速访问app store
- memcache简单使用
- Android贴吧系统学习-----对时间的处理方法
- UITextView汉字光标问题
- 获取地址上的ID(页面与服务器的交互)
- html拼接数据的时候一定要注意null值的问题
- JQuery flot API文档 中文版
- Servlet 与 JSP 核心编程(第二卷)
- iOS多线程的初步研究-- NSTimer
- wordpress开启多站点
- hdu1159 (简单dp)
- lua中读取时间
- Android实战简易教程-第六十枪(分享一个城市选择功能模块)
- jquery实现视觉滚动--fullpage