电脑微信视频横着的里发照片怎样横着排多张照片

请完成以下验证码
查看: 169940|回复: 12
朋友用微信发来二百多张图片,怎么弄到电脑里?
昨天朋友用微信发来二百多张产品图,搞了半天不知道要怎么弄到电脑,问问大家要怎么弄啊?以前图片少的时候我都是一张一张的点另存到手机相册,再用数据线下到电脑里的。另外用微信网页版传输助手,手机里的微信图片不能全选批量复制粘贴吗?
让你朋友打包传你
一根筋,朋友用微信传, 你就不会改用QQ上传电脑啊。
据说可以这么玩,按住一张图片,稍后出来选项选项“更多”,然后把图片多选。
方案1.保存消息到邮件
方案2.收藏,然后登陆网页版微信,传文件助手,发送收藏的文件
据说可以这么玩,按住一张图片,稍后出来选项选项“更多”,然后把图片多选。
方案1.保存消息到邮件
感谢回复,没有更多选项啊,可能是我版本问题,换个版本试试看。
让你朋友打包传你
呵呵,刚认识不是太熟,不好意思叫别人传第二次啊。本来传百度云或者邮件或者QQ多好,搞这个微信好麻烦,我都不知道微信除了发语音还有什么用途。
一根筋,朋友用微信传, 你就不会改用QQ上传电脑啊。
加的微信,并用微信发来的。请教qq怎么传?微信发的,QQ里面也有的吗?
只想说,200多张用微信传?打包上网盘多简单啊
手机连接电脑后开启存储模式,手机就变成了U盘模式的存储卡,在电脑上直接打开微信的图片文件夹,把里面的图片多选拷贝出来就行了。
手机连接电脑后开启存储模式,手机就变成了U盘模式的存储卡,在电脑上直接打开微信的图片文件夹,把里面的 ...
楼上的怎么连这么简单的都没想到??????
Copyright & KaFan & All Rights Reserved.
Powered by Discuz! X3.3( 苏ICP备号 ) GMT+8,您所在的位置:
  怎么一次性发多张照片?怎么用微信发多张照片?信现在是我们常用的聊天工具之一,今天小编教大家如如何在我们的朋友圈里一次性发多张照片。
  方法/步骤
  首先登录我们的微信
选择下方的发现
进入发现之后点击朋友圈
然后点击上方的照相机按钮,选择照片
  之后我们先选择手机里的一张照片,点击完成之后选择照片后面的加号如图可以添加第二张照片。重复这样的步骤添加多张照片
添加完成后点击上方的发送即可
TGP是由腾讯推出的一款游戏助手平台,大部分玩家都会使用TG...
电脑软件排行
移动软件排行
Android应用
读过此文的人还看过
天极大视野
京公网安备84号欢迎您,!&
当前位置:&>>&&>>&
微信处理事故很简单 4张照片上传几分钟搞定
微处理启动首日,5名驾驶员用微信处理事故,体验到快捷方便
  昨天,绍兴交警微信处理事故平台正式开通。从记者的现场体验看,轻微交通事故用微信处理,确实相当方便。
  昨天上午8点47分,在越城区城南大道和常禧路交叉口发生了一起事故,一辆灰色起亚追尾了一辆白色宝马,起亚车的左前灯与宝马车的右尾灯发生碰撞,但只是轻微刮擦。两名车主准备打电话报警,正好交警周明正在旁边执勤,及时赶了过来。
  在周明的指导下,双方先是拍了一张两车前方10米的照片,然后又拍摄一张两车后方10米的照片,接着又在两车碰撞的位置拍摄了一张相撞痕迹的细目照,最后将双方的行驶证、驾驶证和保险凭证放在一起拍了一张照片。拍完照片后,4张照片用微信上传,不一会儿,“绍兴交警”公众微信号发来事故编号,双方当事人只要拿着事故编号就能理赔。整个过程在5分钟内就完成了。
  在完成这一过程后,白色宝马车主凌先生和起亚车主黄先生都感慨,“确实很简单,以后遇到这种情况,自己就会操作了。”
  周明告诉记者,其实车主不习惯用微信处理事故,是因为他们不了解流程的简便。“车主只要上传两辆事故车的前方照、后方照、车辆受损部位的局部照以及三证照(驾驶证、行驶证、保险证)这4张照片,基本上就大功告成了。”
  为了让微信处理交通事故更加迅速,交警部门还在事故处理大厅开设了专门的微信处理事故窗口,在交通事故处理中心后台又增设了交警微信管理平台,通过这个平台,工作人员可实时掌握事故时间、事发地址、出警情况、归属大队等相关信息,第一时间将事故处理完毕。
  不过,并非所有的“微事故”都可以“微处理”。
  昨天早上8点17分,越城区快阁苑内一辆白色轿车车尾被刮伤,车主将此事故上传微信平台进行处理。但由于肇事车辆逃逸,不符合两车事故的范围,因此无法用微信处理。
  由于用微信处理事故昨天才刚刚开始,不少市民表示对具体操作流程不是很清楚。昨天,共有5名驾驶员用微信处理了交通事故。启用微信处理事故可以节约警力,更重要的是还可以为自己节约时间,保持道路畅通。
  “前期我们会在事故现场指导车主们如何进行微处理,同时,车主们也可按照微信上相关提示操作。”正在执法的交警告诉记者,事故最终处理权还是归交警,有些模棱两可的微处理事故还是要让车主把事故车辆开到事故处理中心进行再处理。(转自天天商报)怎样将手机里的多张照片变成一张发到微信朋友圈 怎样将手机里的多张照片变成一张发到微信朋友圈
全部答案(共3个回答)
进去你的朋友圈,点击发送状态,选择图片并且输入文字就可以了
微信朋友圈不能制作链接啊,那些朋友圈的链接都是他们绑定了微博,然后从微博或是QQ空分享到微信的
1.打开photoshop,新建一个文件,设置内容:名称111111,宽度210象素,高度290象素,分辨率72象素/英寸,模式RGB,文档背景白色。(宽度、高...
按照你发第一张照片的程序,点击第一张图片后面的+,可以继续添加图片,最多9张。
在微博或者空间发布成长微博,然后分享到朋友圈,朋友圈同步微信,然后微信就有了。
答: 如何修改点评?請教各位朋友
答: 美国苹果公司的新款手机,全触屏的智能机,在中国卖的很贵。
答: 手机购买还是找正规卖家
天猫等网站
答: 可能被设置了禁言你IP接入吧
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415仿照,朋友圈分享图片功能 。可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 。很不错的源码,大家有需要可以下载看看 。
下载地址 :&
很多网友不知道怎么获取图片路径,这里贴出来:
String path = Bimp.tempSelectBitmap.get(position).getImagePath();
//部分代码如下
package com.king.photo.
import android.annotation.SuppressL
import android.app.A
import android.content.C
import android.content.I
import android.graphics.B
import android.graphics.BitmapF
import android.graphics.C
import android.graphics.drawable.BitmapD
import android.graphics.drawable.ColorD
import android.os.B
import android.os.H
import android.os.M
import android.provider.MediaS
import android.util.L
import android.view.G
import android.view.KeyE
import android.view.LayoutI
import android.view.V
import android.view.View.OnClickL
import android.view.ViewG
import android.view.ViewGroup.LayoutP
import android.view.animation.AnimationU
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.BaseA
import android.widget.B
import android.widget.GridV
import android.widget.ImageV
import android.widget.LinearL
import android.widget.PopupW
import android.widget.RelativeL
import com.king.photo.R;
import com.king.photo.util.B
import com.king.photo.util.FileU
import com.king.photo.util.ImageI
import com.king.photo.util.PublicW
import com.king.photo.util.R
//首页面activity
public class MainActivity extends Activity {
private GridView noS
private GridA
private View parentV
private PopupWindow pop = null;
private LinearLayout ll_
public static B
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Res.init(this);
bimap = BitmapFactory.decodeResource(
getResources(),
R.drawable.icon_addpic_unfocused);
PublicWay.activityList.add(this);
parentView = getLayoutInflater().inflate(R.layout.activity_selectimg, null);
setContentView(parentView);
public void Init() {
pop = new PopupWindow(MainActivity.this);
View view = getLayoutInflater().inflate(R.layout.item_popupwindows, null);
ll_popup = (LinearLayout) view.findViewById(R.id.ll_popup);
pop.setWidth(LayoutParams.MATCH_PARENT);
pop.setHeight(LayoutParams.WRAP_CONTENT);
pop.setBackgroundDrawable(new BitmapDrawable());
pop.setFocusable(true);
pop.setOutsideTouchable(true);
pop.setContentView(view);
RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.parent);
Button bt1 = (Button) view
.findViewById(R.id.item_popupwindows_camera);
Button bt2 = (Button) view
.findViewById(R.id.item_popupwindows_Photo);
Button bt3 = (Button) view
.findViewById(R.id.item_popupwindows_cancel);
parent.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
pop.dismiss();
ll_popup.clearAnimation();
bt1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
pop.dismiss();
ll_popup.clearAnimation();
bt2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
AlbumActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.activity_translate_in, R.anim.activity_translate_out);
pop.dismiss();
ll_popup.clearAnimation();
bt3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
pop.dismiss();
ll_popup.clearAnimation();
noScrollgridview = (GridView) findViewById(R.id.noScrollgridview);
noScrollgridview.setSelector(new ColorDrawable(Color.TRANSPARENT));
adapter = new GridAdapter(this);
adapter.update();
noScrollgridview.setAdapter(adapter);
noScrollgridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& arg0, View arg1, int arg2,
long arg3) {
if (arg2 == Bimp.tempSelectBitmap.size()) {
Log.i("ddddddd", "----------");
ll_popup.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.activity_translate_in));
pop.showAtLocation(parentView, Gravity.BOTTOM, 0, 0);
Intent intent = new Intent(MainActivity.this,
GalleryActivity.class);
intent.putExtra("position", "1");
intent.putExtra("ID", arg2);
startActivity(intent);
@SuppressLint("HandlerLeak")
public class GridAdapter extends BaseAdapter {
private LayoutI
private int selectedPosition = -1;
public boolean isShape() {
public void setShape(boolean shape) {
this.shape =
public GridAdapter(Context context) {
inflater = LayoutInflater.from(context);
public void update() {
loading();
public int getCount() {
if(Bimp.tempSelectBitmap.size() == 9){
return (Bimp.tempSelectBitmap.size() + 1);
public Object getItem(int arg0) {
return null;
public long getItemId(int arg0) {
public void setSelectedPosition(int position) {
selectedPosition =
public int getSelectedPosition() {
return selectedP
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_published_grida,
parent, false);
holder = new ViewHolder();
holder.image = (ImageView) convertView
.findViewById(R.id.item_grida_image);
convertView.setTag(holder);
holder = (ViewHolder) convertView.getTag();
if (position ==Bimp.tempSelectBitmap.size()) {
holder.image.setImageBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.icon_addpic_unfocused));
if (position == 9) {
holder.image.setVisibility(View.GONE);
holder.image.setImageBitmap(Bimp.tempSelectBitmap.get(position).getBitmap());
return convertV
public class ViewHolder {
public ImageV
Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
adapter.notifyDataSetChanged();
super.handleMessage(msg);
public void loading() {
new Thread(new Runnable() {
public void run() {
while (true) {
if (Bimp.max == Bimp.tempSelectBitmap.size()) {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
Bimp.max += 1;
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}).start();
public String getString(String s) {
String path = null;
if (s == null)
return "";
for (int i = s.length() - 1; i & 0; i++) {
s.charAt(i);
protected void onRestart() {
adapter.update();
super.onRestart();
private static final int TAKE_PICTURE = 0x000001;
public void photo() {
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(openCameraIntent, TAKE_PICTURE);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case TAKE_PICTURE:
if (Bimp.tempSelectBitmap.size() & 9 && resultCode == RESULT_OK) {
String fileName = String.valueOf(System.currentTimeMillis());
Bitmap bm = (Bitmap) data.getExtras().get("data");
FileUtils.saveBitmap(bm, fileName);
ImageItem takePhoto = new ImageItem();
takePhoto.setBitmap(bm);
Bimp.tempSelectBitmap.add(takePhoto);
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
for(int i=0;i&PublicWay.activityList.size();i++){
if (null != PublicWay.activityList.get(i)) {
PublicWay.activityList.get(i).finish();
System.exit(0);
return true;
下载地址 :&
备份下载地址:http://download.csdn.net/detail/jdsjlzx/8486449
此篇文章主要讲述GridView控件实现添加本地图片并显示.主要是关于GridView控件的基本操作,通常可以通过自定义继承BaseAdapter的适配器加载图片,而下面讲述的不是自定义的适配器,而是调用SimpleAdapter实现的.至于上传发布与网络交互此处不讲述,后面文章会讲!
一. 实现效果
& &&主要是通过点击+从本地相册中添加图片,同时显示图片至GridView.点击图片可以进行删除操作,同时界面中的发布EditView控件也很好看,不足之处在于+好没有移动至最后,但原理相同.
二. 项目工程结构
三. 界面布局详细代码
& & 1.主界面activity_main.xml& &&主要通过相对布局实现,第一部分是底部的TextView,中间是EditView和GridView相对布局,下面是两个按钮.同时EditView调用res/drawable-hdpi中的editview_shape.xml,GridView显示的每张图片通过griditem_addpic.xml实现.
&RelativeLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.suishoupaipublish.MainActivity"
tools:ignore="MergeRootFrame" &
&!-- 顶部添加文字 --&
&RelativeLayout
android:id="@+id/Layout_top"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:layout_alignParentTop="true"
android:gravity="center"&
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25sp"
android:gravity="center"
android:text="发布信息" /&
&/RelativeLayout&
&!-- 底部按钮 --&
&RelativeLayout
android:id="@+id/Layout_bottom"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:gravity="center" &
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textSize="20sp"
android:text="发布拍拍" /&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_toRightOf="@+id/button1"
android:textSize="20sp"
android:text="取消发布" /&
&/RelativeLayout&
&!-- 显示图片 --&
&RelativeLayout
android:id="@+id/Content_Layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/Layout_bottom"
android:layout_below="@id/Layout_top"
android:gravity="center"&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_alignParentBottom="true" &
&!-- 设置运行多行 设置圆角图形 黑色字体--&
android:id="@+id/editText1"
android:layout_height="120dp"
android:layout_width="fill_parent"
android:textColor="#000000"
android:layout_margin="12dp"
android:textSize="20sp"
android:hint="随手说出你此刻的心声..."
android:maxLength="500"
android:singleLine="false"
android:background="@drawable/editview_shape" /&
&!-- 网格显示图片 行列间距5dp 每列宽度90dp --&
android:id="@+id/gridView1"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_margin="10dp"
android:background="#EFDFDF"
android:horizontalSpacing="5dp"
android:verticalSpacing="5dp"
android:numColumns="4"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center" &
&/GridView&
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="(友情提示:只能添加9张图片,长按图片可以删除已添加图片)"
android:gravity="center" /&
&/LinearLayout&
&/RelativeLayout&
&/RelativeLayout&
&2.显示ImageView图片布局griditem_addpic.xml
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical" &
&RelativeLayout
android:layout_gravity="center"
android:layout_width="80dp"
android:layout_height="80dp"
android:orientation="vertical" &
&ImageView
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:src="@drawable/gridview_addpic" /&
&/RelativeLayout&
&/LinearLayout&
&3.设置EditView控件圆角和颜色 editview_shape.xml
&?xml version="1.0" encoding="utf-8"?&
&shape xmlns:android="/apk/res/android"
android:shape="rectangle"
android:padding="10dp"&
&!-- 填充editView的颜色 --&
&soild android:color="#ffffff"/&
&!-- 设置圆角的弧度,radius半径越大,editView的边角越圆 --&
android:radius="15dp"
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/&
android:color="#32CD32"
android:width="4px" /&
四. 代码详解
& &&它主要是思想如下:& & 1.通过SimpleAdapter适配器实现实现加载图片,在gridView1.setOnItemClickListener()点击函数中响应不同操作.& & 2.当点击加号图片(+)时,调用本地相册通过Intent实现获取图片路径存于字符串pathImage.& & 3.获取图片路径后在onResume中刷新图片,通过GridView的setAdapter()和notifyDataSetChanged()()函数刷新加载图片.& & 4.点击图片时会获取其position,通过dialog()函数弹出对话框提示是否删除,通过remove实现删除.& &&具体代码如下所示:
public class MainActivity extends Activity {
private GridView gridView1;
//网格显示缩略图
private Button buttonP
//发布按钮
private final int IMAGE_OPEN = 1;
//打开图片标记
private String pathI
//选择图片路径
//导入临时图片
private ArrayList&HashMap&String, Object&& imageI
private SimpleAdapter simpleA
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
* 防止键盘挡住输入框
* 不希望遮挡设置activity属性 android:windowSoftInputMode="adjustPan"
* 希望动态调整高度 android:windowSoftInputMode="adjustResize"
getWindow().setSoftInputMode(WindowManager.LayoutParams.
SOFT_INPUT_ADJUST_PAN);
//锁定屏幕
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
//获取控件对象
gridView1 = (GridView) findViewById(R.id.gridView1);
* 载入默认图片添加图片加号
* 通过适配器实现
* SimpleAdapter参数imageItem为数据源 R.layout.griditem_addpic为布局
//获取资源图片加号
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.gridview_addpic);
imageItem = new ArrayList&HashMap&String, Object&&();
HashMap&String, Object& map = new HashMap&String, Object&();
map.put("itemImage", bmp);
imageItem.add(map);
simpleAdapter = new SimpleAdapter(this,
imageItem, R.layout.griditem_addpic,
new String[] { "itemImage"}, new int[] { R.id.imageView1});
* HashMap载入bmp图片在GridView中不显示,但是如果载入资源ID能显示 如
* map.put("itemImage", R.drawable.img);
* 解决方法:
1.自定义继承BaseAdapter实现
2.ViewBinder()接口实现
参考 http://blog.csdn.net/admin_/article/details/7257901
simpleAdapter.setViewBinder(new ViewBinder() {
public boolean setViewValue(View view, Object data,
String textRepresentation) {
// TODO Auto-generated method stub
if(view instanceof ImageView && data instanceof Bitmap){
ImageView i = (ImageView)
i.setImageBitmap((Bitmap) data);
return true;
return false;
gridView1.setAdapter(simpleAdapter);
* 监听GridView点击事件
* 报错:该函数必须抽象方法 故需要手动导入import android.view.V
gridView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& parent, View v, int position, long id)
if( imageItem.size() == 10) { //第一张为默认图片
Toast.makeText(MainActivity.this, "图片数9张已满", Toast.LENGTH_SHORT).show();
else if(position == 0) { //点击图片位置为+ 0对应0张图片
Toast.makeText(MainActivity.this, "添加图片", Toast.LENGTH_SHORT).show();
//选择图片
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, IMAGE_OPEN);
//通过onResume()刷新数据
dialog(position);
//Toast.makeText(MainActivity.this, "点击第"+(position + 1)+" 号图片",
Toast.LENGTH_SHORT).show();
//获取图片路径 响应startActivityForResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//打开图片
if(resultCode==RESULT_OK && requestCode==IMAGE_OPEN) {
Uri uri = data.getData();
if (!TextUtils.isEmpty(uri.getAuthority())) {
//查询选择图片
Cursor cursor = getContentResolver().query(
new String[] { MediaStore.Images.Media.DATA },
//返回 没找到选择图片
if (null == cursor) {
//光标移动至开头 获取图片路径
cursor.moveToFirst();
pathImage = cursor.getString(cursor
.getColumnIndex(MediaStore.Images.Media.DATA));
//end if 打开图片
//刷新图片
protected void onResume() {
super.onResume();
if(!TextUtils.isEmpty(pathImage)){
Bitmap addbmp=BitmapFactory.decodeFile(pathImage);
HashMap&String, Object& map = new HashMap&String, Object&();
map.put("itemImage", addbmp);
imageItem.add(map);
simpleAdapter = new SimpleAdapter(this,
imageItem, R.layout.griditem_addpic,
new String[] { "itemImage"}, new int[] { R.id.imageView1});
simpleAdapter.setViewBinder(new ViewBinder() {
public boolean setViewValue(View view, Object data,
String textRepresentation) {
// TODO Auto-generated method stub
if(view instanceof ImageView && data instanceof Bitmap){
ImageView i = (ImageView)
i.setImageBitmap((Bitmap) data);
return true;
return false;
gridView1.setAdapter(simpleAdapter);
simpleAdapter.notifyDataSetChanged();
//刷新后释放防止手机休眠后自动添加
pathImage = null;
* Dialog对话框提示用户删除操作
* position为删除图片位置
protected void dialog(final int position) {
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setMessage("确认移除已添加图片吗?");
builder.setTitle("提示");
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
imageItem.remove(position);
simpleAdapter.notifyDataSetChanged();
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
builder.create().show();
& 同时需要在AndroidMainfest.xml中添加权限操作SD卡和网络上传至服务器.
&!-- 申明网络权限
&uses-permission android:name="android.permission.INTERNET" /&
&!-- 申明权限 操作SD卡 --&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
& &&该文章需要注意一个地方:在使用SimpleAdapter适配器加载bmp图片时,可能在GridView中不显示.即HashMap中map.put("itemImage",bmp)不显示图片,而使用put装入R.drawable.img却能显示.& & 这时有两种解决方法,一种是自定义继承BaseAdapter的适配器实现;另一种方法则是如上所示通过ViewBinder()接口实现,感谢博主dmin_提供的方法.& & 下载地址:
下面再分享个图片处理的博客。
&demo下载地址:&& & & &&& & & &&
一. 项目结构及界面
& & & & 项目工程结构如下图所示:
& & & &个人还是比较欣赏这个布局的,其中MainActivity.java是主界面,ProcessActivity.java是图像处理界面,而剩余五个java对应五个不同的图像处理算法:EffectProcessImage(图像特效)、FrameProcessImage(添加相框)、IncreaseProcessImage(图像增强)、PersonProcessImage(图像交互)和WatchProcessImage(查看图片).& & & & 同时Layout中有五个xml子布局,采用PopupWindow形式显示五个不同的处理,同时该demo比较好移植,将文件依次复制过去并且MainActivity改成子活动,即可调用.& & & & 其中部分界面如下:
& & & & & & & & & &&MainActivity主界面& & & & & & & & & & & & & & &添加图片选项& & & & & & & & & & & & &图像处理子界面(底部五个)&
二. 图像查看功能
& & & & 点击主界面GridView中"+"添加图片后,可以选择从相册添加或照相,加载图片进行到处理界面后,点击底部"查看"按钮它会有选中的效果(图标颜色变蓝&背景颜色加深).同时PopupWindow弹出如下界面:
& & & & 其中点击"旋转"后提交的动态图如下所示:
& & & & 参考以前我的博客:
& & & & & &&& & & &&& & & & & &&& & & & & &&& & & & 其他效果如下,同时存在几个问题:& & & & & & 1.图像绘图保存我没有做& & & & & & 2.移动和缩放图像,上传的都是原图大小& & & & & & 3.添加水印功能感觉简单就没实现
三. 图像增强功能
& & & & 图像增强主要是通过3个进度条SeekBar实现,可以调节图像的饱和度、亮度和色相.当饱和度等于0时就是黑白二值图像,三个滑动条可以相互调节.如下图所示:
& & & & 参考我的以前博客:& & & & & &&& & & & & &&& & & & & &&& & & & 同时需要注意一个问题: 设置滑动条时需要设置其区间,同时在弹出PopupWindow注意其宽度和不同手机的适屏处理.& & & & 该部分算法处理代码如下,每部分算法调用后返回值都是bitmap,然后调用imageShow.setImageBitmap(mbmp);直接显示.
四. 图像特效功能
& & & &&PopupWindow弹出如下界面,主要包括:怀旧、浮雕、光照、素描和锐化处理.
& & & & 其中特效效果和EffectProcessImage.java如下所示:
& & & & 参考我的博客:& & & & & &&& & & & & &&&(草稿 强推)& & & & 同时算法中存在一些问题,一个就是效率不高,有好友建议C写算法来调用,但是该文章仅是课堂作业,提供一种方法供大家参考.同时在图像素描算法效果不好,锐化处理应该也不对(可参考博客),光照效果是从中心向边沿映射,用户可自己设置光照直径和方向.
& & & & & &&
五. 图像相框添加
& & & & 最后是图像相框合成,如下图所示.我采用的是照相后合成图片:
& & & & 添加相框功能主要是通过两张图片的合成,我也见到过四张图片分别合成相框的效果.但我更喜欢这种两张图片合成的,在assets文件夹中加载透明图片.详见:& & & &&
六. 总结及感想
& & & & 该处理过程中的底部五个按钮切换背景和颜色详见代码ProcessActivity.,主要是通切换两张图片和背景实现.如果每个界面显示不同内容,建议使用Fragment滑动实现.参考:& & & &&& & & &&& & & & 随手拍我还是比较满意的,其中后台我们使用的是新浪SAE做的,同时ListView刷新拍拍也非常不错!效果如下:
& & & & 上传的demo我把发布功能删除了,它是通过线程和Process进度条来上传多张图片的.同时ListView可以刷新最近发布消息,点击图片可以查看大图.可以对发布的拍拍进行评论、关注、点赞等操作.& & & &&但是由于整个项目是大家一起完成,包括网络、数据库(SAE)、ListView(引用开源),所以只能共享我做的那部分.抱歉~如果有时间可以写些关于Android网络方面的文章,包括如何上传图片(URL链接存储在云盘中)、获取数据库内容等操作.& & & & PS:最近其实挺烦躁的,一方面这学期确实忙成狗了,寒假也还有个作业.但在火车上我还是挺平静的&&听着调皮的钢琴曲,看着窗外流逝的繁华,不知道从什么时候自己已经喜欢上了这种26小时独处的感觉.感受颇多啊!另一个挺令我心烦的就是回家后不久就去做了个手指的小手术,今天写完这篇文章,心情稍微好点!蓦然回首,突然发现这辈子我最对不住的人居然是我自己,希望来年对自己有点,尤其是对自己的身体.同时有机会,找份实习吧!但幸运的是,每每分享一些博客、完成一些项目后都能给我带来一份快乐.& & & & 希望文章对大家有所帮助~& & & & 最后用最近看的《老人与海》结束这篇文章:& & & &&生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方.& & & (By:Eastmount
夜11点 &&)
阅读(...) 评论()}

我要回帖

更多关于 电脑版微信摄像头横着 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信