准备完成的GPS相机的部分,相机部…

准备完成的GPS相机的部分,相机部分已经完成,GPS部分还差一些

下面是相机部分,没有自己设计复杂的相机,只是简单的调用android系统的相机,操作包括图像显示,文件操作,文件修改。

准备完成的功能:
虽然很多手机里面已经集成了这个功能,但我还是想自己完成一个,就是使用GPS收集地理信息,中文的,将它加入到当前拍的照片中,功能不复杂,但需要花些时间。

这里列出相机APP的代码:
首先是layout下的xml:activity_gpscmain.xml
============================= =========== =========== =========== =========== ===========
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="fill_parent"
  4.     android:layout_height="fill_parent"
  5.     tools:context=".GPSCMainActivity" 
  6.     android:orientation="vertical"
  7.     
  8.     >

  9.     <ImageView
  10.         android:id="@+id/imageView"
  11.         android:layout_width="fill_parent"
  12.         android:layout_height="wrap_content"
  13.         android:layout_alignParentBottom="true"
  14.         android:layout_below="@+id/button"
  15.         android:background="#999999" />

  16.     <Button
  17.         android:id="@+id/button1"
  18.         android:layout_width="wrap_content"
  19.         android:layout_height="wrap_content"
  20.         android:text="点击加载位置" />

  21.     <Button
  22.         android:id="@+id/button"
  23.         android:layout_width="wrap_content"
  24.         android:layout_height="wrap_content"
  25.         android:layout_alignParentRight="true"
  26.         android:layout_alignParentTop="true"
  27.         android:text="点击启动相机" />

  28.     <TextView
  29.         android:id="@+id/textView1"
  30.         android:layout_width="wrap_content"
  31.         android:layout_height="wrap_content"
  32.         android:layout_alignBaseline="@+id/button1"
  33.         android:layout_alignBottom="@+id/button1"
  34.         android:layout_centerHorizontal="true"
  35.         android:textColor="#ff0000"
  36.         
  37.         android:text="未加载位置" />

  38. </RelativeLayout>
============================= =========== =========== =========== =========== ===========
接下来是相机的主文件:GPSCMainActivity.java
============================= =========== =========== =========== =========== ===========
  • package com.example.gpscamera;


  • import java.io.File;
  • import java.io.FileNotFoundException;
  • import java.io.FileOutputStream;
  • import java.io.IOException;
  • import java.text.SimpleDateFormat;   //时间获取
  • import java.util.Date; //日期显示

  • import android.app.Activity;
  • import android.content.Intent;
  • import android.graphics.Bitmap;
  • import android.graphics.Color;
  • import android.os.Bundle;
  • import android.os.Environment;
  • import android.provider.MediaStore;
  • import android.text.format.Time;//时间获取
  • import android.util.Log;
  • import android.view.View;
  • import android.view.View.OnClickListener;
  • import android.widget.Button;
  • import android.widget.ImageView;
  • import android.widget.TextView;
  • import android.widget.Toast;

  • public class GPSCMainActivity extends Activity {
  • public static String picturename="";
  • public static  int picturenum=0;
  • public static boolean GPSstateADD=false;//设置地理信息是否添加
  • public static String GPSstate="拍摄位置:无";//地理信息
  • public static String getnowdata()//得到当前时间,作为文件名
  • {
  • Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
  • t.setToNow(); // 取得系统时间。
  • int year = t.year;
  • int month = t.month;
  • int date = t.monthDay;
  • int hour = t.hour; // 0-23
  • int minute = t.minute;
  • int second = t.second;
  • String str=""+year+"_"+month+"_"+date+"-"+hour+"_"+minute+"_"+second;
  • return str;

  • }
  • @Override
  • public void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_gpscmain);

  • Button button = (Button) findViewById(R.id.button);
  • Button button1=(Button) findViewById(R.id.button1);
  • final TextView textview1=(TextView) findViewById(R.id.textView1);//设置信息提示
  • if (GPSCMainActivity.GPSstateADD)//为真,则已加载
  • {
  • textview1.setText("已加载位置");
  • textview1.setTextColor(Color.rgb(0, 255, 0));//设置字体颜色红色
  • }
  • else 
  • {
  • textview1.setText("未加载位置");
  • textview1.setTextColor(Color.rgb(255, 0, 0));//设置字体颜色绿色
  • }
  • button.setOnClickListener(new OnClickListener() {

  • @Override
  • public void onClick(View v) {
  • Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  • startActivityForResult(intent, 1);//启动照相机
  • }
  • });
  • button1.setOnClickListener(new OnClickListener(){
  • @Override
  • public void onClick(View v){
  • if (GPSCMainActivity.GPSstateADD)
  • {
  • GPSCMainActivity.GPSstateADD=false;
  • textview1.setText("未加载位置");
  • textview1.setTextColor(Color.rgb(255, 0, 0));//设置字体颜色红色
  • //Toast.makeText(this, "", 3).show();//想做个信息提示框,但没成功
  • }
  • else 
  • {
  • GPSCMainActivity.GPSstateADD=true;
  • textview1.setText("已加载位置");
  • textview1.setTextColor(Color.rgb(0, 255, 0));//设置字体颜色绿色
  • }
  • }
  • });
  • }
  • @Override
  • protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  • super.onActivityResult(requestCode, resultCode, data);

  • if (resultCode == Activity.RESULT_OK) {

  • String sdStatus = Environment.getExternalStorageState();
  • if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
  • Log.v("TestFile",
  • "SD card is not avaiable/writeable right now.");
  • return;
  • }

  • Bundle bundle = data.getExtras();
  • Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
  • FileOutputStream b = null;
  • File file = new File("/sdcard/myImage/");
  • file.mkdirs();// 创建文件夹
  • int num=GPSCMainActivity.picturenum;
  • num++;
  • GPSCMainActivity.picturenum=num;//相片号码
  • String data0=this.getnowdata();//相片日期
  • String fileName="";
  • if(GPSCMainActivity.GPSstateADD)//将地理信息添加到文件名中
  • {
  • fileName = "/sdcard/myImage/"+data0+"_"+GPSCMainActivity.picturenum+GPSCMainActivity.GPSstate+".jpg";
  • }
  • else
  • {
  • fileName = "/sdcard/myImage/"+data0+"_"+GPSCMainActivity.picturenum+".jpg";
  • }
  • //String fileName = "/sdcard/myImage/"+data0+"_"+MyCaremaActivity.picturenum+".jpg";//"+MyCaremaActivity.picturenum+"

  • try {
  • b = new FileOutputStream(fileName);
  • bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
  • } catch (FileNotFoundException e) {
  • e.printStackTrace();
  • } finally {
  • try {
  • b.flush();
  • b.close();
  • } catch (IOException e) {
  • e.printStackTrace();
  • }
  • }

  • ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// 将图片显示在ImageView里
  • }
  • }
  • }
============================= =========== =========== =========== =========== ===========
以上是相机部分的代码,我完成的还有GPS查询方面的代码,下篇贴出,作为以后的参考
主要是这个小项目没有太多的时间完成,只做完了一半,如果以后有时间还需要继续完成。
============================= =========== =========== =========== =========== ===========
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值