在android Activity中实现图片的拖动.docx
- 文档编号:1403590
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:26
- 大小:48.36KB
在android Activity中实现图片的拖动.docx
《在android Activity中实现图片的拖动.docx》由会员分享,可在线阅读,更多相关《在android Activity中实现图片的拖动.docx(26页珍藏版)》请在冰点文库上搜索。
在androidActivity中实现图片的拖动
在androidActivity中实现图片的拖动
1.图片在Activity中的固定区域上下移动使用到ImageView,和TranslateAnimation控制位置变化的动画类进行操作。
2.第一步是在xml文件中添加图片控件ImageView并且引用资源文件中的相应图片。
第二步在正文文件中设置ImageView类型的变量imageview,并且用findViewById()将变量imageview与xml中的ImageView相关联,在正文文件中设置imageview将它与监听器绑定运用TranslateAnimationtranslationAnimation=newTranslateAnimation(ENDSTART_X-20,ENDSTART_X-20,endY+10,endY+10);//图片转移imageview.startAnimation(translationAnimation);开始动画置
3.TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)(位置变化动画)
4.获取屏幕长宽:
WindowManagerwindowManager=getWindowManager();
Displaydisplay=windowManager.getDefaultDisplay();
screenWidth=display.getWidth();
screenHeight=display.getHeight();
5.FrameLayout是最简单的一个布局对象。
它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象—比如,一张你要发布的图片。
所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。
后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。
原来可以利用android:
layout_gravity来设置位置的:
2011/12/3
6.在android屏幕中实现Button在固定区域拖动:
只要将用户的handleActionUp,handleActionDownhandleActionmove,中的处理过程前面加上一个条件判断,看是否用户点击的屏幕上坐标是否在所规定的范围内,若在则执行下面的处理工作否则不执行。
Apk包的安装与卸载
方法1:
——————————首先安装————————
一:
首先需要启动模拟器
二:
start->运行->CMD
三:
进入andoridsdk下面的tools目录
四:
adbinstallc:
\*.apk(说明:
“c:
\*.apk”是要安装的文件的路径)
这样就安装成功了!
——————————卸载————————
一:
首先需要启动模拟器
二:
start->运行->CMD
三:
进入andoridsdk下面的tools目录
四:
adbshell(按回车跳一行出现#在#后空一格输入cddata按回车下面方法一样)
五:
cddata
六:
cdapp
七:
ls(说明,主要是针对不知道包下面的文件,可以列表显示出来)
八:
rm*.apk(说明:
"*.apk"是你要卸载的apk包)
这样就可以卸载这个apk包了!
在DOS中查看模拟器中创建的数据库信息
首先进入Dos进入androidsdktools目录下输入
Adbshell
出现#
输入cddata
输入cddata
ls–l
用cd包名进入着自己所创建的包
再ls
出现databases与lib
输入cddatabases
Ls出现数据库名例如long_db
继而输入sqlite3long_db
输入.schema查看表结构
Select*from表名;
2011年12月3日星期六
关于在闹钟设置中屏幕上同时显示多个Button的操作总结:
1.实现用户在灰色区域内点击,即弹出一个显示点击处对应的时间button,并且当用户多次点击灰色区域继而弹出多个button(每次点击灰色区域就在点击处弹出),对于弹出的button都能够被用户拖动,并且被拖动的button不会影响其他的button,即button之间具有一定的独立性。
而且它们之间又有共同点。
共同点在于这些button都是从同一个ButtonActivity类中继承过来的。
2.Button是继承textView的对象。
只是在textview的基础上增添了一个风格style属性
3.ButtonActivity类是用户自定义的一个类,这个类是继承库函数中的Button方法的,而ButtonActivity中的具体内容则是创建一个button的监听器实现方法,当在主函数中实例化一个ButtonActivity对象后就在其后紧跟着就要设置监听器,监听器的设置则是调用ButtonActivity实例化对象中的一个监听器实现方法,这个方法就是用户先前在ButtonActivity中定义的监听器实现方法。
代码如下:
主函数中的代码:
imageview=newImageView(this);
bt=newButtonActivity(this);//实例化一个button对象
bt.ButtonListener(bt,imageview);//调用用户自定义的button里的监听器方法
用户自定义ButtonActivity中的方法
packagecom.djhs;
importandroid.content.Context;
importandroid.util.DisplayMetrics;
importandroid.util.Log;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnTouchListener;
importandroid.widget.AbsoluteLayout;
importandroid.widget.Button;
importandroid.widget.FrameLayout;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.TextView;
importandroid.widget.AbsoluteLayout.LayoutParams;
publicclassButtonActivityextendsButtonimplementsOnTouchListener{
privatefinalStringLOG="MainViewInformation";
//privateButtonbt;
//privateImageViewimageview=null;
privateLinearLayoutmain_layout;
privateFrameLayoutframe_layout;
privateintstartY;
privateintendX;
privateintendY;
intlastX,lastY;
intwidth=0;//屏幕的宽度
publicButtonActivity(Contextcontext){
super(context);
//TODOAuto-generatedconstructorstub
}
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
//TODOAuto-generatedmethodstub
returnfalse;
}
publicvoidButtonListener(ButtonActivityv,finalImageVieww){
//用户自定义的监听器方法
DisplayMetricsdm=getResources().getDisplayMetrics();//getthescreenwidthandheight
finalintscreenWidth=dm.widthPixels;
finalintscreenHeight=dm.heightPixels;
Log.i(LOG,"screenWidth----"+screenWidth);
Log.i(LOG,"screenHeight----"+screenHeight);
finalintWidth=screenWidth;
width=Width;
finaldoublehour=screenHeight/24.0;//将屏幕高度转化成时间
finaldoubleminute=hour/60.0;
v.setOnTouchListener(newOnTouchListener(){//thebuttonactionlistener;
publicbooleanonTouch(Viewv,MotionEventevent){
//TODOAuto-generatedmethodstub
intea=event.getAction();
Log.i("TAG","Touch:
"+ea);
switch(ea){
caseMotionEvent.ACTION_DOWN:
lastX=(int)event.getRawX();//获取触摸事件触摸位置的原始X坐标
lastY=(int)event.getRawY();
break;
caseMotionEvent.ACTION_MOVE:
intdx=(int)event.getRawX()-lastX;
intdy=(int)event.getRawY()-lastY;
intl=v.getLeft();//+dx;//fixedthexcoordinate
intb=v.getBottom()+dy;
intr=v.getRight();//+dx;//fixedtheycoordinate
intt=v.getTop()+dy;
//下面判断移动是否超出屏幕
if(l<0){
l=0;
r=l+v.getWidth();
}
if(t<-25){
t=0;
b=t+v.getHeight();
}
if(r>screenWidth){
r=screenWidth;
l=r-v.getWidth();
}
if(b>screenHeight+25){
b=(int)screenHeight;
t=b-v.getHeight();
}
v.layout(l,t,r,b);//showthebuutononthescreen
LayoutParamslayout_para=null;
layout_para=newLayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,
(int)(screenWidth*(6/10.0)),(int)t);
lastX=(int)event.getRawX();
lastY=(int)event.getRawY();
v.setLayoutParams(layout_para);
if(dy>0){//button向下滑动时
finalinthours=(int)((t+(screenWidth*(3/28.0)))/hour);
finalintmin=(int)(((t+(screenWidth*(3/28.0)))%hour)/minute);
if(min<10)
{
if((t+(screenWidth*(3/28.0))) {//判断是否已超出屏幕高度 ((TextView)v).setText("时钟"+hours+": "+0+min);//分钟小于10前面显示加0设置button上的内容 } else { ((TextView)v).setText("时钟"+0+": "+0+0); } } else { ((TextView)v).setText("时钟"+hours+": "+min); } } else//button向上滑动时 { finalinthours=(int)((t+screenWidth*(1/28.0))/hour); finalintmin=(int)(((t+screenWidth*(1/28.0))%hour)/minute); if(min<10) { if(t>0) {//判断是否已超出屏幕高度 ((TextView)v).setText("时钟"+hours+": "+0+min);//分钟小于10前面显示加0 } else { ((TextView)v).setText("时钟"+0+": "+0+0); } } else{ ((TextView)v).setText("时钟"+hours+": "+min); } } if(dy>0)//button向下滑动时箭头位置向下看齐 { layout_para=newAbsoluteLayout.LayoutParams((int)(screenWidth*(1/13.0)),(int)(screenWidth*(1/13.0)),(int)((int)(width*(6/10.0))-width*(1/12.0)),(int)(t+screenWidth*(1/14.0))); w.setLayoutParams(layout_para); } else//button向上滑动时箭头位置向上看齐 { layout_para=newAbsoluteLayout.LayoutParams((int)(screenWidth*(1/13.0)),(int)(screenWidth*(1/13.0)),(int)((int)(width*(6/10.0))-width*(1/12.0)),(int)t); w.setLayoutParams(layout_para); } w.setImageResource(R.drawable.path); v.postInvalidate(); break; caseMotionEvent.ACTION_UP: break; } returnfalse; } }); } } 2011年12月6日星期二 此说明为解释如何在android手机屏幕上显示gif格式的图片 在Android中是不支持直接使用Gif图片关联播放帧动画 必须将gif格式的图片用软件将其拆分为多个图片通过AnimationDrawable进行逐帧连续播放 1.实现此功能的程序在picture文件中; 2.将picture中的res文件中的anim文件拷到对应的工程中 3.anim文件中有一个anim.xml文件其中item中由上到下是图片的播放顺序而图片则存放在drawble文件中 anim.xml内容如下: xmlversion="1.0"encoding="UTF-8"? > oneshot="false" xmlns: android=" duration="150"android: drawable="@drawable/xiu0"/> duration="150"android: drawable="@drawable/xiu1"/> duration="150"android: drawable="@drawable/yte"/> duration="150"android: drawable="@drawable/yte"/> duration="150"android: drawable="@drawable/yte"/> 4.main.xml中的进行相应的修改即可内容如下: android=" android: layout_width="fill_parent" android: layout_height="fill_parent" android: orientation="vertical"> android: id="@+id/prograssbar01" style="@style/animStyle" android: layout_width="fill_parent" android: layout_height="fill_parent" /> 5.在valuse文件中新建一个style.xml文件将其内容复制到对应的文件下即可。 xmlversion="1.0"encoding="utf-8"? > style/Widget.ProgressBar.Large"> indeterminateDrawable">@anim/anim android平台sd卡进行文件的读写: 1.首先介绍大概步骤首先是在用户自建的android工程(工程名如Filewriteread)中修改Filewriteread/AndroidManifest.xml中的内容修改后的结果如下: xmlversion="1.0"encoding="utf-8"? > android=" package="com.dd.aa" android: versionCode="1" android: versionName="1.0"> name="android.permission.WRITE_EXTERNAL_STORAGE"/> name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> minSdkVersion="8"/> android: icon="@drawable/ic_launcher" android: label="@string/app_name"> android: label="@string/app_name" android: name=".FilewriteandreadActivity"> name="android.permission.WRITE_EXTERNAL_STORAGE"/> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> 2.在如下目录中创建Filewriteread/FilewritereadActivity.java文件内容如下: packagecom.dd.aa; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.TextView; publicclassFilewriteandreadActivityextendsActivity{ privateTextViewreadFileTextView; privateButtonback=null; privateFileHelperhelper; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.filewriteread); readFileTextView=(TextView)findViewById(R.id.readFileTextView); back=(Button)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在android Activity中实现图片的拖动 android Activity 实现 图片 拖动