Android怎么给图片添加备注,android拍照并给照片添加备注,以GridView显示

该博客介绍了如何在Android应用中实现拍照功能,并允许用户为拍摄的照片添加备注。通过启动系统相机,获取拍摄的Bitmap图像,然后将其存储在集合中,并在GridView中显示。同时,提供了一个对话框用于输入备注信息,当备注非空时,将备注与图片关联。整个过程涉及Activity的生命周期管理、Intent交互以及自定义Adapter来展示图片和备注。
摘要由CSDN通过智能技术生成

标签:摘录

附完整代码,此代码只实现功能,美观及其它不考虑(*^__^*)

java代码:

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.provider.MediaStore;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.Intent;

import android.graphics.Bitmap;

import android.text.TextUtils;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.GridView;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

private ImageView iv_img;

private TextView tv_remark;

private AlertDialog dialog;

private EditText et_remark;

private List lb = new ArrayList();

private List ls = new ArrayList();

private GridView gv;

private MyAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

initData();

}

private void initView() {

gv = (GridView) findViewById(R.id.gv_show);

}

private void initData() {

adapter = new MyAdapter();

gv.setAdapter(adapter);

}

private class MyAdapter extends BaseAdapter {

@Override

public int getCount() {

return lb.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view = View.inflate(getApplicationContext(), R.layout.gv_item,

null);

iv_img = (ImageView) view.findViewById(R.id.iv_img);

tv_remark = (TextView) view.findViewById(R.id.tv_remark);

Bitmap bm = lb.get(position);

String remark = ls.get(position);

iv_img.setImageBitmap(bm);

tv_remark.setText(remark);

return view;

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_paizhao:

onRemark();

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1 && resultCode == Activity.RESULT_OK) {

// 拍照Activity保存图像数据的key是data,返回的数据类型是Bitmap对象

Bitmap cameraBitmap = data.getExtras().getParcelable("data");

// 将拍到的照片存放于集合中

lb.add(cameraBitmap);

initData();

}

super.onActivityResult(requestCode, resultCode, data);

}

/**

* 给照片添加备注信息

*/

public void onRemark() {

AlertDialog.Builder builder = new Builder(MainActivity.this);

dialog = builder.create();

View view = View

.inflate(getApplicationContext(), R.layout.dialog_remark, null);

et_remark = (EditText) view.findViewById(R.id.et_remark);

Button bt_ok = (Button) view.findViewById(R.id.bt_ok);

Button bt_no = (Button) view.findViewById(R.id.bt_no);

bt_ok.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String remark = et_remark.getText().toString().trim();

if (TextUtils.isEmpty(remark)) {

Toast.makeText(getApplicationContext(), "添点备注吧~~~⊙﹏⊙‖∣",

2000).show();

} else {

// 将备注信息添加到集合中

ls.add(remark);

// 调用系统照相机

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, 1);

dialog.dismiss();

}

}

});

bt_no.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

dialog.setView(view, 0, 0, 0, 0);

dialog.show();

}

}

activity_main.xml布局:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/gv_show"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:numColumns="2" />

dialog_remark.xml布局:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/beizhu"

android:textColor="@android:color/black"

android:textSize="18dip" />

android:id="@+id/et_remark"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="20dip"

android:textColor="@android:color/black" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

android:id="@+id/bt_ok"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_marginLeft="20dip"

android:text="@string/ok" />

android:id="@+id/bt_no"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_marginRight="20dip"

android:text="@string/no" />

gv_item.xml布局:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical" >

android:id="@+id/iv_img"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@+id/tv_remark"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

menu文件下的main.xml布局:

android:id="@+id/action_paizhao"

android:orderInCategory="100"

android:showAsAction="ifRoom|withText"

android:icon="@android:drawable/ic_menu_add"/>

标签:摘录

原文:http://dreamwing.blog.51cto.com/9872128/1625252

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值