2013/04/25
来源:互联网 发布:jquery post 数组 php 编辑:程序博客网 时间:2024/05/13 19:31
package barry.android.c;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.Timer;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.Gravity;
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 MyCaremaActivity extends Activity {
//private static Handler handler = new Handler(Looper.getMainLooper());
//private static Toast toast = null;
//private static Object synObj = new Object();
private Button camera_video = (Button) findViewById(R.id.show_button);
private MyToast myToast = new MyToast(this);
private Button camera_image = (Button) findViewById(R.id.button);
private Button camera_exit = (Button) findViewById(R.id.exit);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//TextView tv=(TextView)findViewById(R.layout.tv1);
camera_image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
}
});
camera_video.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, 1);
if(v == camera_video){
myToast.show();
}
if(v == camera_exit){
myToast.cancel();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 先创建一个Toast对象
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;
}
//Toast.makeText(this, name, Toast.LENGTH_LONG).show();
// 设置Toast信息提示框显示的位置(在屏幕顶部水平居中显示)
/*try{
// 从Toast对象中获得mTN变量
Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
// TN对象中获得了show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
// 调用show方法来显示Toast信息提示
method.invoke(obj, null);
}catch (Exception e){}
try{
Field field = toast.getClass().getDeclaredField("mTN");
Object obj = field.get(toast);
// 需要将前面代码中的obj变量变成类变量。这样在多个地方就都可以访问了
Method method = obj.getClass().getDeclaredMethod("hide", null);
method.invoke(obj, null);
}catch (Exception e){}*/
/*Toast toast;
Timer timer1=new Timer(); //必须实例化,不然空指针异常
//<初始化不能删!删了空指针异常~>
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 0);
final Handler handler=new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
toast=Toast.makeText(XXX.this, info, Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 50);
timer1 = new Timer();
timer1.schedule(new RemindTask(toast), 0,3000); }
}); */
//new MyCaremaActivity().popupImpl();
String name = new DateFormat().format("yyyy-MM-dd kk:mm:ss",Calendar.getInstance(Locale.CHINA)) + " ";
Toast.makeText(this, name, Toast.LENGTH_LONG).show();
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
FileOutputStream b = null;
File file = new File("/sdcard0/myImage/");
file.mkdirs();// 创建文件夹
String fileName = "/sdcard0/myImage/111.jpg";
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里
}
}
/*
* 打开TOAST对话框
*/
private void popupImpl(){
String name = new DateFormat().format("yyyy-MM-dd kk:mm:ss",Calendar.getInstance(Locale.CHINA)) + " ";
Toast toast = Toast.makeText(this, name, Toast.LENGTH_LONG);
//Toast toast = Toast.makeText(this, "Never Close Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.CENTER_VERTICAL, 0, 0);
//toast.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
try {
Field field = toast.getClass().getDeclaredField("mTN");
Object obj = field.get(toast);
//设置可以访问私有静态变量
field.setAccessible(true);
obj = field.get(toast);
//利用变量obj取到show()方法
Method method = obj.getClass().getDeclaredMethod("show", null);
//阻止其调用show方法
method.invoke(obj,null);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 关闭TOAST对话框
*/
private void closeImpl(Toast toast,Object obj){
if(obj != null){
Method method;
try {
method = obj.getClass().getDeclaredMethod("hide", null);
method.invoke(obj, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*
* 永远不关闭toast
* */
private void never_close(){
Timer timer1=new Timer(); //必须实例化,不然空指针异常
String name = new DateFormat().format("yyyy-MM-dd kk:mm:ss",Calendar.getInstance(Locale.CHINA)) + " ";
Toast toast = Toast.makeText(this, name, Toast.LENGTH_LONG);
//<初始化不能删!删了空指针异常~>
//toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
//toast.setGravity(Gravity.TOP, 0, 0);
/*final Handler handler=new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
toast=Toast.makeText(this, name, Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 50);
timer1 = new Timer();
timer1.schedule(new RemindTask(toast), 0,3000); }
});*/
}
private Bitmap generatorContactCountIcon(Bitmap icon) {
// 初始化画布
int iconSize = (int) getResources().getDimension(
android.R.dimen.app_icon_size);
Bitmap contactIcon = Bitmap.createBitmap(800, 600, Config.ARGB_8888);
Canvas canvas = new Canvas(contactIcon);
// 拷贝图片
Paint iconPaint = new Paint();
iconPaint.setDither(true);// 防抖动
iconPaint.setFilterBitmap(true);// 用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果
Rect src = new Rect(0, 0, icon.getWidth() - 5, icon.getHeight() - 5);
Rect dst = new Rect(0, 0, 800, 600);
canvas.drawBitmap(icon, src, dst, iconPaint);
// 在图片上创建经纬度
// String contacyCount="经纬度:"+latLongString;
String contacyCount = "经纬度:";
// 启用抗锯齿和使用设备的文本字距
Paint countPaint = new Paint(Paint.ANTI_ALIAS_FLAG
| Paint.DEV_KERN_TEXT_FLAG);
countPaint.setColor(Color.RED);
countPaint.setTextSize(10f);
countPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText(contacyCount, 10, 10, countPaint);
return contactIcon;
}
}
class MyToast {
private Context mContext = null;
private Toast mToast = null;
private Handler mHandler = null;
private Runnable mToastThread = new Runnable() {
@Override
public void run() {
mToast.show();
mHandler.postDelayed(mToastThread,1000);//每隔1秒显示一次
}
};
public MyToast(Context context){
mContext = context;
mHandler = new Handler(mContext.getMainLooper());
String time=new DateFormat().format("yyyy 年 MM 月 dd 日",Calendar.getInstance(Locale.CHINA)) + "";
mToast = Toast.makeText(mContext, time, Toast.LENGTH_LONG);
mToast.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
}
public void setText(String text){
mToast.setText(text);
}
public void show(){
mHandler.post(mToastThread);
}
public void cancel() {
mHandler.removeCallbacks(mToastThread);//先把显示线程删除
//mToast.cancel();// 把最后一个线程的显示效果cancel掉,就一了百了了
}
}
- 2013/04/25
- 2013年04月25日
- 04/25
- 2013/2/25
- 2013-02-25
- 2013-6-25备份
- 2013-6-25备份
- 2013-07-25(周四)
- 2013-09-25
- 2013-04-04 C++课件
- 2013-01-04
- 2013-01-04
- 2013-03-04
- 2013-04-03 基础知识
- 2013-04-07
- 2013-04-08
- 2013-04-09
- 2013-04-12
- github版本库使用详细教程
- Activity extends BaseActivity图片
- ora-01033:oracle initializationg or shutdown in progress 错误提示
- IOS中NSFileManager的操作
- 搭建Android开发环境与开发工具选择
- 2013/04/25
- 后缀数组+RMQ
- 中文后台出现乱码
- STL函数对象及函数对象适配器
- 第三方支付平台理解
- 我是一个小小小菜鸟
- 关于Qt系统触摸屏设备配置说明
- Eclipse颜色设置
- matlab小波变换