当前位置:文档之家› Android 适应任何自定义样式 提示弹出框 Dialog 封装

Android 适应任何自定义样式 提示弹出框 Dialog 封装

Android 适应任何自定义样式 提示弹出框 Dialog 封装
Android 适应任何自定义样式 提示弹出框 Dialog 封装

Android 适应任何样式提示弹出框Dialog 封装

在Android开发中,难免有各种各样的提示框,如加载数据等待框,删除确认框、输入密码提示框等等,这些是完全可以自定义的,这里给出一个框架以及一个示例,帮助你开发任何样式布局的提示框,废话不多说,直接贴代码:

HintDialog.java

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.Context;

import android.view.KeyEvent;

import android.view.Window;

public class HintDialog

{

Dialog mDialog = null;

private Context mContext = null;

private IHintDialog mIDialogInstance = null;

/**

* 构造函数

* @param context

*/

public HintDialog(Context context)

{

mContext = context;

mDialog = new AlertDialog(mContext)

{

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if (keyCode == KeyEvent.KEYCODE_BACK &&

mIDialogInstance != null)

{

mIDialogInstance.onKeyDown(keyCode, event);

return true;

}

return super.onKeyDown(keyCode, event);

}

};

mDialog.setCancelable(false);

mDialog.setCanceledOnTouchOutside(false);

}

/**

*

* @param iLayoutResId 此DIALOG采用的布局文件

* @param interfaceInstance 此DIALOG需要实现的一些接口事件 */

public void showDialog(int iLayoutResId, IHintDialog interfaceInstance)

{

if (mDialog == null || iLayoutResId == 0)

{

return;

}

mIDialogInstance = interfaceInstance;

mDialog.show();

mDialog.setContentView(iLayoutResId);

Window window = mDialog.getWindow();

if (mIDialogInstance != null)

{

mIDialogInstance.showWindowDetail(window);

}

}

/**

* 使dialog消失

*/

public void dismissDialog()

{

if (mDialog != null && mDialog.isShowing())

{

mDialog.dismiss();

}

}

/**

* 确定Dialog是否正在显示

* @return

public boolean isShowing()

{

if (mDialog != null && mDialog.isShowing())

{

return mDialog.isShowing();

}

return false;

}

public interface IHintDialog

{

public void onKeyDown(int keyCode, KeyEvent event);

public void showWindowDetail(Window window);

}

}

HintDialogActivity.java

import com.example.hintdialogdemo.HintDialog.IHintDialog;

import android.os.Bundle;

import android.app.Activity;

import android.view.KeyEvent;

import android.view.Menu;

import android.view.View;

import android.view.Window;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class HintDialogActivity extends Activity implements OnClickListener

{

Button btnConfirm = null;

HintDialog mDialog = null;

@Override

public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1d7824900.html,yout.activity_hint_dialog);

btnConfirm = (Button) findViewById(R.id.button1);

btnConfirm.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu)

{

getMenuInflater().inflate(R.menu.activity_hint_dialog, menu);

return true;

}

@Override

public void onClick(View v)

{

switch (v.getId())

{

case R.id.button1:

mDialog = new HintDialog(

HintDialogActivity.this);

mDialog.showDialog(https://www.doczj.com/doc/1d7824900.html,yout.confirm_dialog, new IHintDialog()

{

@Override

public void showWindowDetail(Window window)

{

TextView txvTitle = (TextView) window

.findViewById(R.id.txvTitle);

txvTitle.setText("Confirm?");

Button btnOK = (Button)

window.findViewById(R.id.btnOK);

btnOK.setText("Yes");

btnOK.setOnClickListener(HintDialogActivity.this);

Button btnCancel = (Button) window

.findViewById(R.id.btnCancel);

btnCancel.setText("NO");

btnCancel.setOnClickListener(HintDialogActivity.this);

}

@Override

public void onKeyDown(int keyCode, KeyEvent event)

{

if (keyCode == KeyEvent.KEYCODE_BACK)

{

mDialog.dismissDialog();

Toast.makeText(HintDialogActivity.this,

"onKeyback now",

Toast.LENGTH_LONG).show();

}

}

});

break;

case R.id.btnOK:

mDialog.dismissDialog();

Toast.makeText(HintDialogActivity.this,

"Confirm OK now", Toast.LENGTH_LONG).show();

break;

case R.id.btnCancel:

mDialog.dismissDialog();

Toast.makeText(HintDialogActivity.this,

"Confirm Cancel now", Toast.LENGTH_LONG).show();

break;

default:

break;

}

}

}

其实也不难,主要是AlertDialog的使用,注意需要显示调用dissmissDialog()来消失此弹出框。

Android开发规范参考文档

Android开发参考文档 一、Android编码规范 1. java代码中不出现中文,最多注释中可以出现中文.xml代码中注释 2. 成员变量,局部变量、静态成员变量命名、常量(宏)命名 1). 成员变量: activity中的成员变量以m开头,后面的单词首字母大写(如Button mBackButton; String mName);实体类和自定义View的成员变量可以不以m开头(如ImageView imageView,String name), 2). 局部变量命名:只能包含字母,组合变量单词首字母出第一个外,都为大写,其他字母都为小写 3). 常量(宏)命名: 只能包含字母和_,字母全部大写,单词之间用_隔开UMENG_APP_KEY 3. Application命名 项目名称+App,如SlimApp,里面可以存放全局变量,但是杜绝存放过大的实体对象4. activity和其中的view变量命名 activity命名模式为:逻辑名称+Activity view命名模式为:逻辑名称+View 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 5. layout及其id命名规则 layout命名模式:activity_逻辑名称,或者把对应的activity的名字用“_”把单词分开。

命名模式为:view缩写_模块名称_view的逻辑名称, 用单词首字母进行缩写 view的缩写详情如下 LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:ib Button:btn 6. strings.xml中的 1). id命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称,strings.xml中,使用activity名称注释,将文件内容区分开来 2). strings.xml中使用%1$s实现字符串的通配,合起来写 7. drawable中的图片命名 命名模式:activity名称_逻辑名称/common_逻辑名称/ic_逻辑名称 (逻辑名称: 这是一个什么样的图片,展示功能是什么) 8. styles.xml 将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 9. 使用layer-list和selector,主要是View onCclick onTouch等事件界面反映

Android自定义适配器的编写

ListView :在Android应用开发过程中属于最常用的系统组件之一,当然可能同学们问为什么会突然游戏开发中讲这个,呵呵,其实在游戏开发中,也会常常使用到系统组件,比如游戏排行榜,简单的游戏关卡选择等等,都可以来使用ListView来实现; 当然关于ListView我想大家都会使用了,那么这篇文章也不是跟大家讲解ListView是如果使用的,而是如何自定义通用适配器类; 在ListView三种适配器当中,最受大家青睐的肯定就是SimpleAdapter 适配器,用过的童鞋们都很清楚,它的扩展性很强,可以将ListView中每一项都使用自定义布局,插入N多组件;但是SimpleAdapter也有弱点,那就是当ListView中每一项有Button、CheckBox等这些有事件的组件,我们想监听它们就必须自定义适配器!那么今天的重点也就是来讲解一下如何写一个自定义通用适配器类! SimpleAdapter 构造的时候,我们知道需要五个参数来进行映射数据到ListView中,那么我们今天的自定义通用适配器其实也就是实现系统SimpleAdapter的一个自定义版; OK,可能我说这么多,大家还是不太懂,其实今天要讲述的自定义通用适配器优点有两点: 1.使用通用适配器就不需要每次使用自定义适配器的时候,都要去重新去写一个,太累。。。。 2.构造方法与SimpleAdapter构造方法相同,五个参数也一摸一样! 3.只需要在自定义的适配器类中,将我们需要监听的组件进行设置监听即可!别的代码不需要去改动! 例如我们需要完成下图这种ListView: (图1)

首先我们来完成ListView中每项的布局:main.xml:

Android 自定义View——动态进度条

Android 自定义View——动态进度条 这个是看了梁肖的demo,根据他的思路自己写了一个,但是我写的这个貌似计算还是有些问题,从上面的图就可以看出来,左侧、顶部、右侧的线会有被截掉的部分,有懂得希望能给说一下,改进一下,这个过程还是有点曲折的,不过还是觉得收获挺多的。比如通动画来进行动态的展示(之前做的都是通过Handler进行更新的所以现在换一种思路觉得特别好),还有圆弧的起止角度,矩形区域的计算等!关于绘制我们可以循序渐进,比如最开始先画圆,然后再画周围的线,最后设置动画部分就可以了。不多说了,上代码了。 代码 自定义View public class ColorProgressBar extends View{ //下面这两行在本demo中没什么用,只是前几天看别人的代码时学到的按一定尺寸,设置其他尺寸的方式,自动忽略或者学习一下也不错 // private int defaultStepIndicatorNum= (int) TypedValue.applyDimension(https://www.doczj.com/doc/1d7824900.html,PLEX_UNIT_DIP,40,getResources().getDisplay Metrics()); // int mCircleRadius=0.28f*defaultStepIndicatorNum; //布局的宽高 private int mWidth;

private int mHeight; //直径 private int mDiameter=500; //底层圆画笔 private Paint mPaintbg; //顶层圆的画笔 private Paint mPaintft; //周围线的画笔 private Paint mPaintLine; //外层线条的长度 private int mLongItem=dip2px(20); //线条与圆的间距 private int mDistanceItem=dip2px(10); //进度条的最大宽度(取底层进度条与顶层进度条宽度最大的) private int mProgressWidth; //底层圆的颜色 private int mBackColor; //顶层圆的颜色 private int mFrontColor; //底层圆、顶层圆的宽度 private float mBackWidth; private float mFrontWidth; //设置进度 private float currentvalue; //通过动画演示进度 private ValueAnimator animator; private int curvalue; public ColorProgressBar(Context context) { this(context,null,0); } public ColorProgressBar(Context context, AttributeSet attrs) { this(context, attrs,0); } public ColorProgressBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray ta=context.obtainStyledAttributes(attrs, R.styleable.ColorProgressBar);

Android 适应任何自定义样式 提示弹出框 Dialog 封装

Android 适应任何样式提示弹出框Dialog 封装 在Android开发中,难免有各种各样的提示框,如加载数据等待框,删除确认框、输入密码提示框等等,这些是完全可以自定义的,这里给出一个框架以及一个示例,帮助你开发任何样式布局的提示框,废话不多说,直接贴代码: HintDialog.java import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.view.KeyEvent; import android.view.Window; public class HintDialog { Dialog mDialog = null; private Context mContext = null; private IHintDialog mIDialogInstance = null; /** * 构造函数 * @param context */ public HintDialog(Context context) { mContext = context; mDialog = new AlertDialog(mContext) { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && mIDialogInstance != null) { mIDialogInstance.onKeyDown(keyCode, event); return true; } return super.onKeyDown(keyCode, event); }

2016尚学堂Android开发入门教程

android开发者资料大全 第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

android百度地图标注物弹出气泡

百度地图标注物弹出气泡 实现功能:点击标注物,弹出气泡,点击气泡跳转到另一个页面 气泡可以自定义,网上很多都需要draw这个函数,搞得那么复杂,好吧我承认自己水平不高. overlay_pop.xml:

android:id="@+id/pop_driver_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:gravity="center_horizontal" android:singleLine="true" android:textColor="#ff646464" android:textSize="16sp"/> MapActivity: // 标注物资源 private Drawable driverMarker = null; privateint lat; privateint lon; private View popView;// 气泡 privateint x; privateint y; @Override protectedvoid onCreate(Bundle savedInstanceState) { driverMarker = getResources().getDrawable(R.drawable.paopao); // 初始化view initView(); } privatevoid initView() { // 地图view mapview = (MapView) findViewById(R.id.bmapView); mapview.setClickable(true); mapview.setBuiltInZoomControls(true); // 地图控制器 mapController = mapview.getController();

Android PopupWindow的使用和分析

Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。 PopupWindow使用Demo 这个类的使用,不再过多解释,直接上代码吧。 比如弹出框的布局: 弹出框布局 Activity的布局中只有一个按钮,按下后会弹出框,Activity代码如下: package com.example.hellopopupwindow; import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.util.Log;import https://www.doczj.com/doc/1d7824900.html,youtInflater;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import https://www.doczj.com/doc/1d7824900.html,youtParams;import android.widget.Button;import android.widget.PopupWindow;import android.widget.Toast; public class MainActivity extends Activity { private Context mContext = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/1d7824900.html,yout.activity_main); mContext = this;

Android自定义控件

今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法。今天就来介绍下如何使用组合控件,将通过两个实例来介绍。 第一个实现一个带图片和文字的按钮,如图所示: 整个过程可以分四步走。第一步,定义一个layout,实现按钮内部的布局。代码如下: 1. 2. 7. 17.

Android,Android 仿微信自定义数字键盘的实现代码

Android,Android 仿微信自定义数字键盘的实现代码 本文介绍了Android 仿微信自定义数字键盘的实现代码,分享给大家,希望对大家有帮助 最终效果: 实现这个自定义键盘的思路很简单: 1. 要写出一个数字键盘的布局; 2. 与 Edittext 结合使用,对每个按键的点击事件进行处理; 3. 禁用系统软键盘。 有了思路,实现起来就不难了。 1. 实现键盘的 xml 布局 网格样式的布局用 GridView 或者 RecyclerView 都可以实现,其实用 GridView 更方便一些,不过我为了多熟悉 RecyclerView 的用法,这里选择用了 RecyclerView 。 [Java] 查看源文件 复制代码 ? 1 < RecyclerView 用来实现键盘布局,上面的 RelativeLayout 则是为了实现收起键盘的点击事件。 2. 在代码中实现键盘布局,填充数据、增加点击事件 我们新建类 KeyboardView 继承自 RelativeLayout ,关联上面的布局文件,然后做一些初始化操作:对 RecyclerView 填充数据、设置适配器,设置出现和消失的动画效果,写一些会用到的方法等。 [Java] 查看源文件 复制代码 ? 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 public class KeyboardView extends RelativeLayout { private RelativeLayout rlBack; private RecyclerView recyclerView; private List<String> datas; private KeyboardAdapter adapter; private Animation animationIn; private Animation animationOut; public KeyboardView(Context context) { this(context, null); } public KeyboardView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public KeyboardView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs, defStyleAttr); }

android自定义View之Android手机通讯录制作

android自定义View之Android手机通讯录制作 我们的手机通讯录一般都有这样的效果,如下图: OK,这种效果大家都见得多了,基本上所有的Android手机通讯录都有这样的效果。那我们今天就来看看这个效果该怎么实现。 一.概述 1.页面功能分析

整体上来说,左边是一个ListView,右边是一个自定义View,但是左边的ListView 和我们平常使用的ListView还有一点点不同,就是在ListView中我对所有的联系人进行了分组,那么这种效果的实现最常见的就是两种思路: 1.使用ExpandableListView来实现这种分组效果 2.使用普通ListView,在构造Adapter时实现SectionIndexer接口,然后在Adapter 中做相应的处理 这两种方式都不难,都属于普通控件的使用,那么这里我们使用第二种方式来实现,第一种方式的实现方法大家可以自行研究,如果你还不熟悉ExpandableListView的使用,可以参考我的另外两篇博客: 1.使用ExpandableListView实现一个时光轴 2.android开发之ExpandableListView的使用,实现类似QQ好友列表 OK,这是我们左边ListView的实现思路,右边这个东东就是我们今天的主角,这里我通过自定义一个View来实现,View中的A、B......#这些字符我都通过canvas的drawText 方法绘制上去。然后重写onTouchEvent方法来实现事件监听。 2.要实现的效果 要实现的效果如上图所示,但是大家看图片有些地方可能还不太清楚,所以这里我再强调一下: 1.左边的ListView对数据进行分组显示 2.当左边ListView滑动的时候,右边滑动控件中的文字颜色能够跟随左边ListView 的滑动自动变化 3.当手指在右边的滑动控件上滑动时,手指滑动到的地方的文字颜色应当发生变化,同时在整个页面的正中央有一个TextView显示手指目前按下的文字

基于Android的自定义媒体播放控件设计与实现

基于Android的自定义媒体播放控件设计与实现 摘要:针对日益增加的个性化应用需求,提出了基于Android的自定义媒体播放控件。该控件通过继承VideoView 实现视频、图片媒体的播放,与网络、数据库进行结合可以下载媒体资源与管理资源。控件中定义了下载回调,即实时显示当前的、下载进度,因而有助于提升用户体验。 关键词:Android;自定义控件;媒体播放;VideoView DOIDOI:10.11907/rjdk.161461 中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2016)005-0079-03 0 引言 在Android系统中,提供了很多控件用于Android应用的开发,其控件的丰富性能可满足基本的应用开发需求。但是随着定制应用的日益增加,基本的控件已很难满足需求,从另一方面而言,这也约束了个性化应用的发展。Google提供的自定义控件方法可以达到应用开发的个性化要求[1]。在Android程序中,视频媒体播放使用VideoView控件实现,或者使用MediaPlayer与SurfaceView结合实现媒体播放功能。对于图片的显示则使用ImageView来实现[2]。日常生活中,视频和图片都是大众最常见的媒体,在一个界面上要既能显

示图片又能显示视频,所以,本文提出了一种继承VideoView 的自定义媒体播放控件,该控件不仅可以显示图片,还可以播放视频,并且在下载视频的过程中可以显示下载进度。同时,自定义媒体播放控件和数据库结合,能够实现媒体文件的自动循环播放。 1 Android系统 Android系统由Google公司2007年在Google I/O开发者大会上发布的移动操作系统,Google将其源码开放以供广大开发者研究。Android系统采用分层架构,具体分为Applications、Application Framework、Libraries(包含Android Runtime)、Linux Kernel四层。Android应用开发者最常接触的是前两层,后两层主要用于底层库和硬件驱动等[3-5]。 2 View及其自定义媒体控件相关类 2.1 View类介绍 在Android系统的Application Framework层,提供了丰富的UI控件,所有UI控件都是直接或间接继承View类。View 类是所有UI控件的基类,该类表示了用户界面的基本构建模块――一个View占用屏幕的矩形区域并且负责界面绘制和事件处理[6-7]。 View类中有很多方法,这些方法都与其界面绘制和事件处理相关,下面简单介绍几个方法: ①onMeasure(int,int):该方法用于获取控件的宽、高,

Android中自定义ListView控件实现下拉刷新,简单实用效果好(原创)

花了一天时间写出了这个类来实现下拉刷新。 首先这是一个自定义的listView控件类,我在许多项目中都用到了它,效果很稳定。实现也很简单。用的时候其他功能都和系统提供的ListView一样,就只是多了一个下拉刷新监听。用这个类替代系统提供的ListView,下拉刷新再也不会烦恼了。\(^o^)/~ 希望对大家有用。 我写的自定义ListView的代码: import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import https://www.doczj.com/doc/1d7824900.html,youtInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.AbsListView.OnScrollListener; import android.widget.ProgressBar; import android.widget.TextView; public class MyListView extends ListView implements OnScrollListener { private static final String TAG = "listview"; private final static int RELEASE_To_REFRESH = 0; private final static int PULL_To_REFRESH = 1; private final static int REFRESHING = 2; private final static int DONE = 3; private final static int LOADING = 4; // 实际的padding的距离与界面上偏移距离的比例 private final static int RATIO = 3; private LayoutInflater inflater; private LinearLayout headView; private TextView tipsTextview;

Android对话框dialog大全(代码直接可用)

Activities提供了一种方便管理的创建、保存、回复的对话框机制,例 如onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。 showDialog(int): 当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。 onPrepareDialog(int, Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog). 如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int) 仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。 dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(int id) 方法,这实际上将为你对这个对话框调用dismiss() 方法。如果你想使用onCreateDialog(int id) 方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用 removeDialog(int id)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。 下面是几种对话框的效果

android 对话框弹出位置和透明度的设置

在android 中我们经常会用AlertDialog 来显示对话框。通过这个对话框是显示在屏幕中心的。但在某些程序中,要求对话框可以显 示在不同的位置。例如,屏幕的上方或下方。要实现这种效果。就需要获得对话框的Window 对象,获得这个Window 对象有多种方法。最容易的就是直接 通过AlertDialog 类的getWindow 方法来获得Window 对象。 1 AlertDialog dialog = new AlertDialog.Builder(this).setTitle("title") 2 .setMessage("message").create(); 3 Window window = alertDialog.getWindow(); 4 window.setGravity(Gravity.TOP); //window.setGravity(Gravity.BOTTO M); 5 alertDialog.show();

透明的对话框

默认显示的对话框是不透明的,但我们可以通过设置对话框的alpha 值将其变成透明或半透明效果。我们都知道。颜色由R (红)、 G (绿)、B (蓝)组成。除此之外,还会有一个A(透明度,Alpha)来描述颜色。在颜色的描述中,如果该值为0表示完全透明,如果该值为255,表示 不透明。 通过设置Windows 的alpha 属性也可以设置对话框的透明度。但alpha 的取值范围是从0到1.0。如果该属性值为0,表 示完全透明,如果该值为1.0,表示不透明(也就是正常显示的对话框)。下面的代码通过将alpha 的值设为0.3,为了更清晰地显示透明的对话框和非透 明的对话框。在本例中加了一个背景图像,将同时显示了两个对话框(一个是半透明的,另一是不透明的)。 1 // 显示透明的对话框 2 4. AlertDialog alertDialog = new AlertDialog.Builder(this).setMessage( 3 5. "透明对话框").setPositiveButton("确定", null).create(); 4 6. Window window = alertDialog.getWindow(); 5 7. https://www.doczj.com/doc/1d7824900.html,youtParams lp = window.getAttributes(); 6 8. // 设置透明度为0.3 7 9. lp.alpha = 0.6f; 8 10. window.setAttributes(lp); 9 11. alertDialog.show();

Android 自定义实现抽屉SlidingDrawer的功能

Android自定义实现抽屉SlidingDrawer的功能 最近项目中需要实现上拉功能,首先想到的就是Android本身自带的抽屉SlidingDrawer,最后也实现了不过,出现的问题就是设置背景色问题,handl er和content是两个不同的部分,这就造成图片要做成两部分,从而产生两个部分图片看起来不是一个整体,而且我这个上拉功能,里面要实现一个水平滚动功能,而SlidingDrawer还有其他的限制,同时官方给出api 17以后,这个功能已经废弃,所以自己自定这样一个上拉功能是必须的。 这里我是继承LinearLayout同时实现GestureDetector.OnGestureListener来实现上拉功能。下面是代码: 001 package com.exampl e.test; 002 003 import android.content.Context; 004 import android.os.AsyncTask; 005 import android.util.AttributeSet; 006 import android.view.GestureDetector; 007 import android.view.MotionEvent; 008 import android.widget.LinearLayout; 009 import android.widget.RelativeLayout; 010 011 public class PanelBom extends LinearLayout impl ements GestureDetector.OnGestureListener{ 012 013 GestureDetector mGesture = null; 014 private bool ean isScrolling = false; 015 private int MAX_HEIGHT = 80;//拖动的最大高度,当前布局位于父布局下面-80位置,这个仅仅是调试参数,这个变量是动态设置的。 016 private fl oat mScrollX; // 滑块滑动距离 017

7种形式的Android Dialog使用举例

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助。 1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。 创建dialog对话框方法代码如下: protected void dialog() { AlertDialog.Builder builder = new Builder(Main.this); builder.setMessage("确认退出吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new OnClickListener() {

@Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Main.this.finish(); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } 在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法 public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); } return false; } 2.改变了对话框的图表,添加了三个按钮

Android移动开发复习(20200629075034)

1. 以下说法正确的是(D) A. DVM旨dalivk的虚拟机,每一个an droid应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念 B. DVM指dalivk的虚拟机,每一个An droid应用程序都在它的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念 C. DVM指dalivk的虚拟机,每一个An droid应用程序都在它的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念 D. DVMt dalivk的虚拟机,每一个An droid应用程序都在它的进程中运行,都拥有一个独立的Dalvik虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说是一个概念 2. 下列哪个不是Activity 的生命周期方法之一?(B ) A. onCreate B. startActivity C. onStart D. onResume 3. 以下那个控件可以用来显示图片(D)。 A. ImageView B.TextView C.Button D.以上都可以 4. Android 开发中常用的数据库是(D )。 A. SQL Server B.MySQL C.Oracle D.SQLite 5. 以下调整宽度和高度的属性,哪个不是Android 系统提供的?(C)。 A. match_parent B.wrap_content C.fill_content D.fill_parent 6. 下列哪个可做EditText 编辑框的提示(D )。 A. android:inputType B.android:text C.android:digits D.android:hint 7. An droid中下列属于In te nt的作用的是(C)。 A. 实现应用程序间的数据共享 B. 是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C?可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D.处理一个应用程序整体性的工作 8. Han Ider是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得 越慢,那么线程销毁的方法是(A ) A onDestroy() B onClear() C onFinish() D onStop()。 9. 关于res/raw 目录说法正确的是(A)。 A 这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B 这里的文件是原封不动的存储到设备上会转换为二进制的格式 C 这里的文件最终以二进制的格式存储到旨定的包中

相关主题
文本预览
相关文档 最新文档