❶ android中怎样消息提示框
在Android开发中,显示消息框有多种方法。
一、使用Toast显示提示信息框
Toast是一种非常方便的提示消息框,他会在程序界面上显示一个简单的提示信息,这个提示信息框用于向用户生成简单的提示信息,它具有两个特点。
1. Toast提示信息不会获得焦点,
2. Toast提示信息过一段时间会自动消失
使用Toast来生成提示消息也非常简单,只要如下几个步骤:
1. 调用Toast的构造器或makeText方法创建一个Toast对象。
2. 调用Toast的方法来设置该消息提示的对齐方式,页边距,显示内容等。
3. 调用Toast的show()方法,将他显示出来。
Toast的功能和用法都比较简单,大部分时候他只能显示简单的额文本提示如果应用需要显示诸如图片,列表之类的复杂提示,一般建议使用对话框完成,如果开发者确实想通过Toast来完成,也是可以的,Toast提供了一个setView()方法,该方法允许开发者自己定义Toast显示的内容。
下面贴一个例子代码:
package org.crazyit.toast;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ToastTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button simple = (Button)findViewById(R.id.simple); //为按钮的单击事件绑定事件监听器
simple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//创建一个Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"简单的提示信息"
// 设置该Toast提示信息的持续时间,
Toast.LENGTH_SHORT);
toast.show();
}
});
Button bn = (Button)findViewById(R.id.bn);
//为按钮的单击事件绑定事件监听器
bn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//创建一个Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"带图片的的提示信息"
// 设置该Toast提示信息的持续时间 ,
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
//获取Toast提示里原有的View
View toastView = toast.getView();
//创建一个ImageView
ImageView image = new ImageView(ToastTest.this);
image.setImageResource(R.drawable.tools);
//创建一个LinearLayout容器
LinearLayout ll = new LinearLayout(ToastTest.this);
//向LinearLayout中添加图片、原有的View
ll.addView(image);
ll.addView(toastView);
toast.setView(ll);
toast.show();
}
});
}
}
二、使用Builder对象
Builder dlg=new Builder(ServerInfoUpdate.this);
dlg.setTitle("Error");
dlg.setMessage("Unknown error.");
dlg.show();
三、使用AlertDialog对象
// 一个简单的弹出对话框
return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
.create();
// 一个相对复杂的弹出对话框
return new AlertDialog.Builder(this)
.setTitle("标题") // 设置标题
// .setCustomTitle(View) // 以一个 View 作为标题
.setIcon(R.drawable.icon01) // 设置标题图片
// .setMessage("信息") // 需要显示的弹出内容
.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("单击了对话框上的“确认”按钮\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();
四、弹出进度条对话框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;
❷ android8.0之悬浮窗和通知栏
悬浮窗:
使用场景:例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示;
注意事项:
1、一般需要在后台进行操作的时候才需要悬浮窗,这样悬浮窗才有意义;
2、API Level >= 23的时候,需要在AndroidManefest.xml文件中声明权限SYSTEM_ALERT_WINDOW才能在其他应用上绘制控件。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />;除了这个权限外,我们还需要在系统设置里面对本应用进行设置悬浮窗权限。该权限在应用中需要启动Settings.ACTION_MANAGE_OVERLAY_PERMISSION来让用户手动设置权限:startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), REQUEST_CODE);
3、LayoutParam设置:LayoutParam里的type变量。这个变量是用来指定窗口类型的。在设置这个变量时,需要注意一个坑,那就是需要对不同版本的Android系统进行适配。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
};在Android 8.0之前,悬浮窗口设置可以为TYPE_PHONE,这种类型是用于提供用户交互操作的非应用窗口。
而Android 8.0对系统和API行为做了修改,包括使用SYSTEM_ALERT_WINDOW权限的应用无法再使用一下窗口类型来在其他应用和窗口上方显示提醒窗口:
- TYPE_PHONE
- TYPE_PRIORITY_PHONE
- TYPE_SYSTEM_ALERT
- TYPE_SYSTEM_OVERLAY
- TYPE_SYSTEM_ERROR
如果需要实现在其他应用和窗口上方显示提醒窗口,那么必须该为TYPE_APPLICATION_OVERLAY的新类型;
如果在Android 8.0以上版本仍然使用TYPE_PHONE类型的悬浮窗口,则会出现如下异常信息:
android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@f8ec928 -- permission denied for window type 2002;
具体实现:
1、Activity:
public void startFloatingService(View view) {
...
if (!Settings.canDrawOverlays(this)) {
Toast.makeText(this, "当前无权限,请授权", Toast.LENGTH_SHORT);
startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), 0);
} else {
startService(new Intent(MainActivity.this, FloatingService.class));
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
if (!Settings.canDrawOverlays(this)) {
Toast.makeText(this, "授权失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "授权成功", Toast.LENGTH_SHORT).show();
startService(new Intent(MainActivity.this, FloatingService.class));
}
}
}
2、service:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
showFloatingWindow();
return super.onStartCommand(intent, flags, startId);
}
private void showFloatingWindow() {
if (Settings.canDrawOverlays(this)) {
// 获取WindowManager服务
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
// 新建悬浮窗控件
Button button = new Button(getApplicationContext());
button.setText("Floating Window");
button.setBackgroundColor(Color.BLUE);
// 设置LayoutParam
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
layoutParams.format = PixelFormat.RGBA_8888;
layoutParams.width = 500;
layoutParams.height = 100;
layoutParams.x = 300;
layoutParams.y = 300;
// 将悬浮窗控件添加到WindowManager
windowManager.addView(button, layoutParams);
}
}
效果展示:
❸ 安卓手机通知栏介绍:安卓手机通知栏设置方法
从左边第一个圆形图标开始看起,这白色圆圈里面带有“风车”形状的图标是手机助手的图标,因为我使用手机助手截图了,所以这个程序运行了,并在通知栏显示了,一般这类图标会有几个,腾讯应用助手、360手机助手、91手机助手、魔乐手机助手、豌豆荚手机助手等,根据你使用的不同的手机助手,显示不同的图标。
然后再接着介绍左边第二个图标,当你的手机使用数据线连接电脑后,会出现这个图标,有些手机系统可能是美化过的,这个图标可能会有所不同,但是都是类似于磁盘、USB之类的图标。
左边第三个很像瓢虫的图标代表调试模式,当你的手机开启调试模式之后,会显示这个图标,调试模式关系到手机连接电脑的成功与否问题,这个后面还会做详细介绍。
然后我们再介绍右边的部分,右边第一个是时间,这个没什么好介绍的,大家都明白的,右边第二个是电池图标,可以显示电池的电量;右边第三个是信号图标,手机的信号好坏会在这里显示;右边第四个是WIFI的信号图标,WIFI信号的好坏会再这里显示;右边第五个是GPS定位标识,这个有的手机显示,有的不显示,问题不大。
想了解更多相关的通知栏信息时,可以将通知栏拉下来,就是用手点住通知栏,然后向下滑动,如下图:
通知栏拉下来之后,可以看到最近打开过的程序,USB调试模式是否开启,USB的连接模式等相关信息。
安卓手机的用户越来越多,相信很多朋友都有必要多了解下手机的使用。有需要的朋友收藏下吧!
猜你还喜欢:
手机root什么意思?安卓手机root相关问题汇总
安卓手机桌面哪个好?安卓手机桌面软件精选推荐
❹ android studio怎样显示提示信息
在eclipse中将鼠标放在类代码上会自动显示类的信息
在使用Android Studio时不会自动提示了
Android Studio在默认情况下是不会和Eclipse那样,鼠标移动到一个类或者方法或者变量上面,就会弹出悬浮框,显示相关的文档的。不过,Android Studio可以通过配置来实现这个功能。
第一步:在选项卡栏目中,选中file,然后在弹出的下拉菜单,选中settings,如图:
第二步:选中settings之后,会出现一个窗口如下图:
接着选中Editor选项,然后在里面有一个show quick doc on mouse move 项,打上勾即可。
此时,Android Studio就会出现和Eclipse那样的提示功能了。
❺ android中的对话框怎么写
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(intid)方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(intid),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(intid)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。
onPrepareDialog(int,Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(intid,Dialog).如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int)仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。
dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(intid)方法,这实际上将为你对这个对话框调用dismiss()方法。如果你想使用onCreateDialog(intid)方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(intid)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。
下面是几种对话框的效果
图一:
图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效果:改变了对话框的图表,添加了三个按钮
Dialog dialog = new AlertDialog.Builder(this).setIcon(
android.R.drawable.btn_star).setTitle("喜好调查").setMessage(
"你喜欢李连杰的电影吗?").setPositiveButton("很喜欢",
new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, "我很喜欢他的电影。",
Toast.LENGTH_LONG).show();
}
}).setNegativeButton("不喜欢", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG)
.show();
}
}).setNeutralButton("一般", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG)
.show();
}
}).create(); dialog.show();
图3效果:信息内容是一个简单的View类型
new AlertDialog.Builder(this).setTitle("请输入").setIcon(
android.R.drawable.ic_dialog_info).setView(
new EditText(this)).setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
图4效果:信息内容是一组单选框
new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(
new String[] { "Item1", "Item2" }, null, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
图5效果:信息内容是一组多选框
new AlertDialog.Builder(this).setTitle("单选框").setIcon(
android.R.drawable.ic_dialog_info).setSingleChoiceItems(
new String[] { "Item1", "Item2" }, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setNegativeButton("取消", null).show();
图6效果:信息内容是一组简单列表项
new AlertDialog.Builder(this).setTitle("列表框").setItems(
new String[] { "Item1", "Item2" }, null).setNegativeButton(
"确定", null).show();
图7效果:信息内容是一个自定义的布局
1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="horizontal"
android:id="@+id/dialog">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvname" android:text="姓名:" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/></LinearLayout>
2.调用代码
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog,
(ViewGroup) findViewById(R.id.dialog)); new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
❻ android开发怎么弄成,点击图标后弹出一个消息框。主界面不显示
这里报错是代码写法有误,建议一行一行代码的写。
具体实现代码:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); 设置对话框标题
builder.setIcon(android.R.drawable.btn_star); 设置对话框标题前的图标
2.创建EditText输入框
final EditText edit = new EditText(context);
3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});
4.设置常用api,并show弹出
builder.setCancelable(true); 设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); 创建对话框
dialog.setCanceledOnTouchOutside(true); 设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
长按菜单键会不会出来?枝差估计是连携的问题。或者尝试下载新的输入法,要么就把自带输入法进行data删除,也就是初始化一下
我不知道你指的不全屏是什么意思。。但是直接用Intent切换到一个新Activity时,页面就是从右至左滑入的······那它就是这样写的:
Activity1.java:
......
在按钮的OnClickListener中,重写OnClick()方法
...
Intent i=new Intent(Activity1.this,Activity2.class);
Activity1.this.satartActivity(i);
...
......
可以在js代码网站进行相应的下载,然后直接放到你的网页中就可以!一般的这种我都是在相关的网站上进行相应的下载
在formload里加上
if (MessageBox.Show("", "", MessageBoxButtons.OKCancel) != DialogResult.OK) Application.Exit();
是指在锁屏时出现的吗,那个是QQ上的锁屏显示消息功能,你在设置中找到消息通知,然后把这个关闭就好了
这需要在按钮属性-时间轴上设置,可以加上触发事件如:文字、图片、动画、声音、链接。。我可以帮你
应该不是QQ的问题,你用的是什么浏览器,我用的是360,很好用的,下载好之后,你进去设置一下,把360浏览器设置为默认浏览器,应该就好了。希望我的回答能让你满意。
你这弹出的是模式对话框吧,如果是非模式的就能操作主界面了。
使用PopUpManager的addPopUp () 方法
public static function addPopUp(window:IFlexDisplayObject, parent:DisplayObject, modal:Boolean = false, childList:String = null):void
modal指定为true是模式的,false是非模式的。
例子:
var = new TitleWindow();
.title = "My Title";
mx.managers.PopUpManager.addPopUp(, pnl, false);
没有帝国时代4
❼ Android手机应用开发一般采用什么框架
android应用开发框架是ApplicationFramework.其系统架构由5部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、。第二部分将详细介绍这5个部分。下面自底向上分析各层。
Android架构
1、LinuxKernelAndroid
基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆唯者拆栈、驱动模型。Linux
Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生
了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAessPoint),专业点可以说是高内聚、低耦合。
如果你只是做应用开发,就不需要深入了解LinuxKernel层。
2、AndroidRuntimeAndroid
包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己
的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执指枣行文件格式是.dex,dex格式是专为Dalvik
设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机
器指令更大。dx是一套工具,可以将Java.class转换成.dex
格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
3、LibrariesAndroid
包含一个C/C库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application
framework)暴露给开发者。下面列出一些核心库:系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备
媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、
H.264、MP3、AAC、AMR、JPG、PNG界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层
LibWebCore--新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL--基本的2D图形引擎
3D库--基于OpenGLES1.0APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType
--位图和矢量字体渲染SQLite--所有应用程序都可以使用的强大而轻量级的关系数据库引擎
4、ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用嫌困程序其实是一组服务和系统,包括:视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(ContentProviders)--使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(ResourceManager)--提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Manager)--使所有的应用程序能够在状态栏显示自定义警告活动管理器(ActivityManager)--管理应用程序生命周期,提供通用的导航回退功能
5、Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(Softwaretack),或称为“软件迭层架构”,迭层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。