付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android开发中Dialog怎么显示图像
这期内容当中在下将会给大家带来有关Android开发中Dialog怎么显示图像,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Dialog一般指可以显示在Activity前面的小窗口,当前的Activity失去焦点(Focus),Dialog将接受用户输入,一般可以用来显示消息或接受用户输入等等。使用Dialog时一般不需要直接创建Dialog类的实例。而是可以使用AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog。最常用的是AlertDialog。下面就以使用AlertDialog为例,使用AlertDialog来选择显示图像的三个例子:DrawMap,
JumbleImage,SeeThroughImage。其中DrawMap暂时不介绍,将在后面介绍Internet应用显示在线地图时再说。通常Dialog是作为Activity一部分来创建的,也就是说在Activity的onCreateDialog(int)中创建。当在onCreateDialog(int)创建Dialog时,Android系统将自动管理Dialog的状态,并把当前Activity作为Dialog的所有者。并且Dialog也继承当前Activity的一些属性,比如说OptionMenu。创建好Dialog后,可以使用showDialog(int)来显示Dialog
,showDialog的参数为Dialog的ID。在显示Dialog之前,如果想对Dialog做些改动,可以在
onPrepareDialog(int,
Dialog)
添加代码。dismiss()关闭对话框。如果在Activity中则使用dismissDialog(int)。本例中使用一个按钮来触发Dialog,在res\layout在添加images.xml<?xml
version=”1.0″
encoding=”utf-8″?>
<LinearLayout
xmlns:android=”/apk/res/android”
android:orientation=”vertical”
android:background=”@drawable/white”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”>
<com.pstreets.graphics2d.GuidebeeGraphics2DView
android:id=”@+id/graphics2dview”
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”/>
<LinearLayout
xmlns:android=”/apk/res/android”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:orientation=”horizontal”
>
<Button
android:text=”Images”
android:id=”@+id/btnImages”
android:layout_width=”wrap_content”
android:textColor=”@color/black”
android:checked=”true”
android:layout_height=”wrap_content”>
</Button>
</LinearLayout>
</LinearLayout>修改Image.javapublic
class
Images
extends
Graphics2DActivity
implements
OnClickListener{
private
Button
btnImages;
private
int[]
imageDuke;
static
final
private
int
IMAGE_DIALOG=1;
int
w,
h;
int
offX,
offY;
int
alpha
=
128;
FontEx
font
=
FontEx.getSystemFont();
int
fontSize
=
24;
Pen
pen
=
new
Pen(Color.RED,
2);
char[]
message
=
"Guidebee".toCharArray();
int
widthOfMessage
=
0;
private
int
numlocs
=
2;
private
int
numcells
=
numlocs
*
numlocs;
private
int[]
cells;
int
cw,
ch;
public
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.images);
graphic2dView
=
(GuidebeeGraphics2DView)
findViewById(R.id.graphics2dview);
btnImages
=
(Button)
findViewById(R.id.btnImages);
btnImages.setOnClickListener(this);
Bitmap
bitmap
=
BitmapFactory.decodeResource(getResources(),
R.drawable.duke_skateboard);
imageDuke
=
new
int[bitmap.getHeight()
*
bitmap.getWidth()];
bitmap.getPixels(imageDuke,
0,
bitmap.getWidth(),
0,
0,
bitmap.getWidth(),
bitmap.getHeight());
widthOfMessage
=
font.charsWidth(message,
0,
message.length,
fontSize);
w=bitmap.getWidth();
h=bitmap.getHeight();
offX
=
(SharedGraphics2DInstance.CANVAS_WIDTH
-
w)
/
2;
offY
=
(SharedGraphics2DInstance.CANVAS_HEIGHT
-
h)
/
2;
cw
=
w
/
numlocs;
ch
=
h
/
numlocs;
cells
=
new
int[numcells];
for
(int
i
=
0;
i
<
numcells;
i++)
{
cells[i]
=
i;
}
}
private
void
drawJumbleImage(){
Random
rand
=
new
Random();
int
ri;
for
(int
i
=
0;
i
<
numcells;
i++)
{
while
((ri
=
rand.nextInt(numlocs))
==
i)
{
}
int
tmp
=
cells[i];
cells[i]
=
cells[ri];
cells[ri]
=
tmp;
}
graphics2D.clear(Color.WHITE);
graphics2D.Reset();
int
dx,
dy;
for
(int
x
=
0;
x
<
numlocs;
x++)
{
int
sx
=
x
*
cw;
for
(int
y
=
0;
y
<
numlocs;
y++)
{
int
sy
=
y
*
ch;
int
cell
=
cells[x
*
numlocs
+
y];
dx
=
(cell
/
numlocs)
*
cw;
dy
=
(cell
%
numlocs)
*
ch;
graphics2D.drawImage(imageDuke,
w,
h,
dx
+
offX,
dy
+
offY,
sx,
sy,
cw,
ch);
}
}
graphic2dView.refreshCanvas();
}
private
void
drawSeeThroughImage(){
alpha
+=
16;
if(alpha>255)
alpha=0;
graphics2D.clear(Color.WHITE);
graphics2D.Reset();
graphics2D.setDefaultPen(pen);
graphics2D.drawChars(font,
fontSize,
message,
0,
message.length,
offX
+
(w
-
widthOfMessage)
/
2,
offY
+
h
/
2);
graphics2D.drawImage(imageDuke,
w,
h,
offX,
offY,
0xFFFF00FF,
alpha);
graphic2dView.refreshCanvas();
}
protected
Dialog
onCreateDialog(int
id)
{
Dialog
dialog;
switch(id)
{
case
IMAGE_DIALOG:
final
CharSequence[]
items
=
{"DrawMap",
"JumbleImage","SeeThroughImage"};
AlertDialog.Builder
builder
=
new
AlertDialog.Builder(this);
builder.setTitle("Images");
builder.setSingleChoiceItems(items,
-1,
new
DialogInterface.OnClickListener()
{
public
void
onClick(DialogInterface
dialog,
int
item)
{
switch(item){
case
0:
break;
case
1:
drawJumbleImage();
break;
case
2:
drawSeeTh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊护理查房中的心理护理
- 食管异物与吞咽困难的护理
- 胃癌护理中的创新方法
- 肿瘤晚期患者家属心理支持
- 营造安全护理环境的重要性
- 臀位分娩的并发症预防
- 2026年幼儿园大班幼儿前书写能力发展观察
- 2026年课堂教学中的微课应用实践
- 2026年化工企业生产装置操作规程与维护保养制度
- 2026年小学综合实践课课堂氛围与效果评析
- 雨课堂学堂在线学堂云《自然辩证法概论( 武汉科技大)》单元测试考核答案
- 市场营销学(山东大学)智慧树知到期末考试答案章节答案2024年山东大学(威海)
- pwm控制的单相逆变电源系统设计LC滤波电路
- 锦州新兴橡胶制品有限公司清洁生产审核评估与验收报告
- 2022年10月上海申康医疗卫生建设工程公共服务中心招考3名工作人员2笔试参考题库含答案解析
- GB/T 7631.12-2014润滑剂、工业用油和有关产品(L类)的分类第12部分:Q组(有机热载体)
- 硅片加工硅片清洗课件
- 挡墙人工挖孔桩安全专项施工方案专家论证
- 二年级上册心理健康课件-我的情绪我做主 全国通用(共19张PPT)
- 完整word版,“吕氏八字命理学”高级理论
- 看台膜结构施工
评论
0/150
提交评论