在android Activity中实现图片的拖动.docx

上传人:b****1 文档编号:17422964 上传时间:2023-04-24 格式:DOCX 页数:26 大小:48.36KB
下载 相关 举报
在android Activity中实现图片的拖动.docx_第1页
第1页 / 共26页
在android Activity中实现图片的拖动.docx_第2页
第2页 / 共26页
在android Activity中实现图片的拖动.docx_第3页
第3页 / 共26页
在android Activity中实现图片的拖动.docx_第4页
第4页 / 共26页
在android Activity中实现图片的拖动.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

在android Activity中实现图片的拖动.docx

《在android Activity中实现图片的拖动.docx》由会员分享,可在线阅读,更多相关《在android Activity中实现图片的拖动.docx(26页珍藏版)》请在冰豆网上搜索。

在android Activity中实现图片的拖动.docx

在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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1