当前位置:首页 » 安卓系统 » androidpost图片

androidpost图片

发布时间: 2023-01-13 01:57:34

A. [Android]HTTPPOST请求参数和效果

一、HTTPPOST请求

1、定义请求的相关参数:

定义请求路径:

2、String url=”http:本地Ip地址:8080/Web工程名”;

3、连接请求

4、设置需要传递的参数:

List<NameValuePair> params=new ArrayList<NameValuePair>;

params.add(new BasicNameValuePair(“后台需要传递的值[键]” , ”Android中传递的值[值]”));

5、设置字符集(防止乱码):

post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

6、客户端发送请求

Response=client.exequte(post);

7、判断请求是否成功:

If(response..getStatusLine().getStatusCode()==200){

}

二、Android自定义动画效果

1、定义某个类继续SurfaceViewHolder 并实现CallBack接口

注:CallBack接口是import android.view.SurfaceHolder.Callback;

2、定义SurfaceviewHolder holder对象

Holder=this.getHolder();

Holder.addCallBack(this);

3、在surfaceChanged中处理线程问题:

}catch(Exceptione(){

}

).start();

三、Android游戏中的四种基本动画效果

1、渐变(alpha)

Animation anmation=new AnimationUtils().loadAnimation(MainActivity.this, R.anim.alpha);

<set>

<alphaandroid:fromAlpha="0.1" android:toAlpha="1.0"android:ration="2000"/>

</set>

此渐变效果由模糊变得清晰

2、缩放(scale)

Animation scale=new AnimationUtils().loadAnimation(MainActivity.this,R.anim.scale);

p_w_picpath.startAnimation(scale);

<set>

<scale

android:fromXScale="0.0"

android:toXScale="1.0"

android:fromYScale="0.0"

android:toYScale="1.0"

android:pivotX="50%"

android:pivotY="50%"

android:fillAfter="false"android:ration="2000"/>

</set>

定义图片从某个X点到某个X点开始动画等一系列信息动画

3、旋转(rotate)

Animation rotate=new AnimationUtils().loadAnimation(MainActivity.this,R.anim.rotate);

p_w_picpath.startAnimation(rotate);

<set>

<rotate

android:fromDegrees="0"

android:toDegrees="+360"

android:pivotX="50%"

android:pivotY="50%"

android:ration="2000"/>

</set>

图片以0度角开始以顺时针旋转,并且以图片的中间点开始动画,所用时间为2s

4、平移(translate)

Animationtranslate=new AnimationUtils().loadAnimation(MainActivity.this,R.anim.translate);

p_w_picpath.startAnimation(translate);

<set>

<translate

android:fromXDelta="10"

android:toXDelta="100"

android:fromYDelta="10"

android:toYDelta="100"

android:ration="2000"/>

</set>

效果和缩放差不多类似

5、Frame动画

注:frame动画当点击暂停后,所有效果从最开始重新播放,所以对于动画来说,最好使用SurfaceViewHolder来播放动画效果

实现步骤:

1)在res目录下的anim中定义一个xml文件 eg:frame.xml

<animation-list><itemandroid:drawable="@drawable/img1"android:ration="300">

</item></animation-list>

在此xml文件中的item里面找到要播放的图片以及每张图片播放的时间效果

2)在res的layout目录下定义一个xml,这里面加入一个ImageView控件,并定义相关的id属性和Width、height等

3)在Activity中获取ImageView控件

Eg:ImageViewp_w_picpath=(ImageView)R.layout.p_w_picpath;

A)为p_w_picpath加载动画

p_w_picpaths.setBackgroundResource(R.anim.frame);

B)定义AnimationDrawable 为每个p_w_picpath设置背景

AnimationDrawable frameAnimation;

frameAnimation=(AnimationDrawable) p_w_picpaths.getBackground();

注:文章出处来自51CTO博客作者EverythingTK
Android
https://blog.51cto.com/cheerupfortk/1219830

B. android 上传图片或文件都是怎么弄的

一:可以使用httppost上传文件
二:或者socket写入文件
上面两种都可以获得二进制流,然后把文件写入流,这一类网络操作最好使用异步任务模型

C. Android用post方式上传到服务器的问题

在HTTP通信中使用最多的就是GET和POST了,GET请求可以获取静态页面,也可以把参数放在URL字符串的后面,传递给服务器。POST与GET的不同之处在于POST的参数不是放在URL字符串里面,而是放在HTTP请求数据中。

android 用post方式上传图片到服务器的示例代码如下:

java">/**
*上传文件到服务器类
*/
publicclassUploadUtil{
privatestaticfinalStringTAG="uploadFile";


privatestaticfinalintTIME_OUT=10*1000;//超时时间


="utf-8";//设置编码


/**
*Android上传文件到服务端
*
*@paramfile需要上传的文件
*@paramRequestURL请求的rul
*@return返回响应的内容
*/
publicstaticStringuploadFile(Filefile,StringRequestURL){
Stringresult=null;
StringBOUNDARY=UUID.randomUUID().toString();//边界标识随机生成
StringPREFIX="--",LINE_END=" ";
StringCONTENT_TYPE="multipart/form-data";//内容类型


try{
URLurl=newURL(RequestURL);
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
conn.setReadTimeout(TIME_OUT);
conn.setConnectTimeout(TIME_OUT);
conn.setDoInput(true);//允许输入流
conn.setDoOutput(true);//允许输出流
conn.setUseCaches(false);//不允许使用缓存
conn.setRequestMethod("POST");//请求方式
conn.setRequestProperty("Charset",CHARSET);//设置编码
conn.setRequestProperty("connection","keep-alive");
conn.setRequestProperty("Content-Type",CONTENT_TYPE+";boundary="+BOUNDARY);


if(file!=null){
/**
*当文件不为空,把文件包装并且上传
*/
DataOutputStreamdos=newDataOutputStream(conn.getOutputStream());
StringBuffersb=newStringBuffer();
sb.append(PREFIX);
sb.append(BOUNDARY);
sb.append(LINE_END);
/**
*这里重点注意:name里面的值为服务端需要key只有这个key才可以得到对应的文件
*filename是文件的名字,包含后缀名的比如:abc.png
*/


sb.append("Content-Disposition:form-data;name="uploadfile";filename=""
+file.getName()+"""+LINE_END);
sb.append("Content-Type:application/octet-stream;charset="+CHARSET+LINE_END);
sb.append(LINE_END);
dos.write(sb.toString().getBytes());
InputStreamis=newFileInputStream(file);
byte[]bytes=newbyte[1024];
intlen=0;
while((len=is.read(bytes))!=-1){
dos.write(bytes,0,len);
}
is.close();
dos.write(LINE_END.getBytes());
byte[]end_data=(PREFIX+BOUNDARY+PREFIX+LINE_END).getBytes();
dos.write(end_data);
dos.flush();
/**
*获取响应码200=成功当响应成功,获取响应的流
*/
intres=conn.getResponseCode();
Log.e(TAG,"responsecode:"+res);
//if(res==200)
//{
Log.e(TAG,"requestsuccess");
InputStreaminput=conn.getInputStream();
StringBuffersb1=newStringBuffer();
intss;
while((ss=input.read())!=-1){
sb1.append((char)ss);
}
result=sb1.toString();
Log.e(TAG,"result:"+result);
//}
//else{
//Log.e(TAG,"requesterror");
//}
}
}catch(MalformedURLExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
returnresult;
}


/**
*通过拼接的方式构造请求内容,实现参数传输以及文件传输
*
*@paramurlServicenetaddress
*@paramparamstextcontent
*@paramfilespictures
*@
*@throwsIOException
*/
publicstaticStringpost(Stringurl,Map<String,String>params,Map<String,File>files)
throwsIOException{
StringBOUNDARY=java.util.UUID.randomUUID().toString();
StringPREFIX="--",LINEND=" ";
StringMULTIPART_FROM_DATA="multipart/form-data";
StringCHARSET="UTF-8";


URLuri=newURL(url);
HttpURLConnectionconn=(HttpURLConnection)uri.openConnection();
conn.setReadTimeout(10*1000);//缓存的最长时间
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不允许使用缓存
conn.setRequestMethod("POST");
conn.setRequestProperty("connection","keep-alive");
conn.setRequestProperty("Charsert","UTF-8");
conn.setRequestProperty("Content-Type",MULTIPART_FROM_DATA+";boundary="+BOUNDARY);


//首先组拼文本类型的参数
StringBuildersb=newStringBuilder();
for(Map.Entry<String,String>entry:params.entrySet()){
sb.append(PREFIX);
sb.append(BOUNDARY);
sb.append(LINEND);
sb.append("Content-Disposition:form-data;name=""+entry.getKey()+"""+LINEND);
sb.append("Content-Type:text/plain;charset="+CHARSET+LINEND);
sb.append("Content-Transfer-Encoding:8bit"+LINEND);
sb.append(LINEND);
sb.append(entry.getValue());
sb.append(LINEND);
}


DataOutputStreamoutStream=newDataOutputStream(conn.getOutputStream());
outStream.write(sb.toString().getBytes());
//发送文件数据
if(files!=null)
for(Map.Entry<String,File>file:files.entrySet()){
StringBuildersb1=newStringBuilder();
sb1.append(PREFIX);
sb1.append(BOUNDARY);
sb1.append(LINEND);
sb1.append("Content-Disposition:form-data;name="uploadfile";filename=""
+file.getValue().getName()+"""+LINEND);
sb1.append("Content-Type:application/octet-stream;charset="+CHARSET+LINEND);
sb1.append(LINEND);
outStream.write(sb1.toString().getBytes());


InputStreamis=newFileInputStream(file.getValue());
byte[]buffer=newbyte[1024];
intlen=0;
while((len=is.read(buffer))!=-1){
outStream.write(buffer,0,len);
}


is.close();
outStream.write(LINEND.getBytes());
}


//请求结束标志
byte[]end_data=(PREFIX+BOUNDARY+PREFIX+LINEND).getBytes();
outStream.write(end_data);
outStream.flush();
//得到响应码
intres=conn.getResponseCode();
InputStreamin=conn.getInputStream();
StringBuildersb2=newStringBuilder();
if(res==200){
intch;
while((ch=in.read())!=-1){
sb2.append((char)ch);
}
}
outStream.close();
conn.disconnect();
returnsb2.toString();
}


}

D. Android 图片上传(同时支持拍照上传和从相册上传)以二进制流的方式post上去,字段“img

我帮你 记得给我好评哦 联系我吧 骗子不要来

E. android 文件流的方式多张图片上传,并多个参数

android 开发中图片上传是很正常的,有两种可用的方式:

下面我们就说明一下以文件流上传图片的方式, 实现网络框架是Retrofit

测试上传3张手机sd卡中的图片,并传人了参数EquipmentCode, Description, ReportUserCode等

其中的思路是: Post的方式,Content-Type:multipart/form-data的类型进行上传文件的。

其中MultipartBody是RequestBody的扩展,

看看请求头的信息, 请求中携带了所有信(如果接口开发人员说不能收到, 叫他自己想想,截图给他,哈哈哈:)

上面的是上传了3张图片,如果一张,只要传一个就行!

就这样,图片上传的两种方式ok拉,测试通过的,保证正确!

参考: https://www.jianshu.com/p/acfefb0a204f

F. Android如何获取网络图片

android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:


  1. 直接获取:(容易:ANR,不建议)

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
Drawabledrawable=loadImageFromNetwork(IMAGE_URL);
mImageView.setImageDrawable(drawable);

2. 后台线程获取url图片:

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
newThread(newRunnable(){
Drawabledrawable=loadImageFromNetwork(IMAGE_URL);
@Override
publicvoidrun(){

//post()特别关键,就是到UI主线程去更新图片
mImageView.post(newRunnable(){
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
mImageView.setImageDrawable(drawable);
}});
}

}).start();

3.AsyncTask获取url图片

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
newDownloadImageTask().execute(IMAGE_URL);
<String,Void,Drawable>
{

(String...urls){
returnloadImageFromNetwork(urls[0]);
}
protectedvoidonPostExecute(Drawableresult){
mImageView.setImageDrawable(result);
}
}

G. android中Handler的post方法的作用是什么

在工作线程中执行耗时任务,当任务完成时,会返回UI线程,一般是更新UI。这时有两种方法可以达到目的。

一种是handler.sendMessage。发一个消息,再根据消息,执行相关任务代码。

另一种是handler.post(r)。r是要执行的任务代码。意思就是说r的代码实际是在UI线程执行的。可以写更新UI的代码。

(7)androidpost图片扩展阅读

一个APK文件结构为:

1、META-INF (注:Jar文件中常可以看到);

2、res (注:存放资源文件的目录) ;

3、AndroidManifest.xml (注:程序全局配置文件) ;

4、classes.dex (注:Dalvik字节码);

5、resources.arsc (注:编译后的二进制资源文件)。

Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexmp命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。

在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。

参考资料来源:网络-Android



H. Android提交post请求上传图片,Java如何获取HttpEntity里面的东西

你好!
那个是客户端,服务器端,写servlet等服务程序去接收、或者使用smartupload接收,,,,,可以使用apache的upload组件、struts的上传功能、等,很多方法
仅代表个人观点,不喜勿喷,谢谢。

I. 安卓(android)开发,使用post方法向服务器提交数据,得不到返回值,具体见截图

出错了 但是错误信息被try包起来了 你可以在catch里边打印错误信息

J. android 怎么发送post请求并接收二进制数据

可使用android自带的httpclient框架实现向服务器发起get或post请求,以下为完整的示例代码:
1. GET 方式传递参数
//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "数据")); //增加参数1
params.add(new BasicNameValuePair("param2", "value2"));//增加参数2
String param = URLEncodedUtils.format(params, "UTF-8");//对参数编码
String baseUrl = "服务器接口完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//将URL与参数拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

2. POST方式 方式传递参数
//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加参数1
params.add(new BasicNameValuePair("param2", "第二个参数"));//增加参数2
try {
HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

热点内容
怎么在电脑上更改微信存储位置 发布:2025-07-03 17:18:18 浏览:862
phpmysql连接超时 发布:2025-07-03 17:05:09 浏览:796
服务器怎么设置电脑远程端口 发布:2025-07-03 16:28:46 浏览:72
电信无线路由器官方密码是什么 发布:2025-07-03 16:25:00 浏览:773
空间只能申请访问 发布:2025-07-03 16:23:27 浏览:735
华硕天选2air配置如何选择 发布:2025-07-03 16:10:09 浏览:571
asp搜索源码 发布:2025-07-03 15:49:55 浏览:235
医美大数据库 发布:2025-07-03 15:47:07 浏览:357
c语言将二进制转化为十进制 发布:2025-07-03 15:32:47 浏览:988
c语言帮助文档 发布:2025-07-03 15:22:43 浏览:320