在main.xml中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000">
<Button
android:id="@+id/but"
android:layout_width="50dp"
android:layout_height="fill_parent"
android:background="#3399ff"
android:textColor="#ffffff"
android:text="照相"/>
<SurfaceView
android:id="@+id/surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
在MyCameraDemo.java中:
package com.li.camera;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.os.Environment;
import android.view.Display;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
public class MyCameraDemo extends Activity {
private SurfaceView surface = null ;
private Button but = null ;
private SurfaceHolder holder = null ;
private Camera cam = null ;
private boolean previewRunning = true ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.but = (Button) super.findViewById(R.id.but) ;
this.surface = (SurfaceView) super.findViewById(R.id.surface) ;
this.holder = this.surface.getHolder() ;
this.holder.addCallback(new MySurfaceViewCallback()) ;
this.holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) ;
this.holder.setFixedSize(500, 350);
this.but.setOnClickListener(new OnClickListenerImpl()) ;
}
private class OnClickListenerImpl implements OnClickListener {
public void onClick(View v) {
if(MyCameraDemo.this.cam != null) {
MyCameraDemo.this.cam.autoFocus(new AutoFocusCallbackImpl()) ;
}
}
}
private class MySurfaceViewCallback implements SurfaceHolder.Callback {
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@SuppressLint("NewApi")
public void surfaceCreated(SurfaceHolder holder) {
MyCameraDemo.this.cam = Camera.open(0) ; // 取得第一个摄像头
WindowManager manager = (WindowManager) MyCameraDemo.this
.getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay() ;
Parameters param = MyCameraDemo.this.cam.getParameters() ;
param.setPreviewSize(display.getWidth(), display.getHeight()) ;
param.setPreviewFrameRate(5) ; // 一秒5帧
param.setPictureFormat(PixelFormat.JPEG) ; // 图片形式
param.set("jpen-quality", 80) ;
MyCameraDemo.this.cam.setParameters(param) ;
try {
MyCameraDemo.this.cam.setPreviewDisplay(MyCameraDemo.this.holder) ;
} catch (IOException e) {
}
MyCameraDemo.this.cam.startPreview() ; // 进行预览
MyCameraDemo.this.previewRunning = true ; // 已经开始预览
}
public void surfaceDestroyed(SurfaceHolder holder) {
if(MyCameraDemo.this.cam != null) {
if(MyCameraDemo.this.previewRunning) {
MyCameraDemo.this.cam.stopPreview() ; // 停止预览
MyCameraDemo.this.previewRunning = false ;
}
MyCameraDemo.this.cam.release() ;
}
}
}
private class AutoFocusCallbackImpl implements AutoFocusCallback {
public void onAutoFocus(boolean success, Camera camera) {
if(success) { // 成功
MyCameraDemo.this.cam.takePicture(sc, pc, jpgcall) ;
}
}
}
private PictureCallback jpgcall = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) { // 保存图片的操作
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
String fileName = Environment.getExternalStorageDirectory()
.toString()
+ File.separator
+ "liyewenphoto"
+ File.separator
+ "LYW" + System.currentTimeMillis() + ".jpg";
File file = new File(fileName) ;
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs() ; // 创建文件夹
}
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)) ;
bmp.compress(Bitmap.CompressFormat.JPEG, 80, bos) ; // 向缓冲区之中压缩图片
bos.flush() ;
bos.close() ;
Toast.makeText(MyCameraDemo.this,
"拍照成功,照片已保存在" + fileName + "文件之中!", Toast.LENGTH_SHORT)
.show();
} catch (Exception e) {
Toast.makeText(MyCameraDemo.this,
"拍照失败!", Toast.LENGTH_SHORT)
.show();
}
MyCameraDemo.this.cam.stopPreview() ;
MyCameraDemo.this.cam.startPreview() ;
}
} ;
private ShutterCallback sc = new ShutterCallback(){
public void onShutter() {
// 按下快门之后进行的操作
}
} ;
private PictureCallback pc = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
}
} ;
}
修改AndroidManifest.xml中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.li.camera"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MyCameraDemo"
android:label="@string/title_activity_my_camera_demo"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
【早盘必读】9.13证券市场要闻(附股)
周五精彩短线:9月12日松辽汽车(600715)以5.70元通知建仓, 9月13日开盘必大涨。9月11日公开的汉商集团(600774)9月12日获利6%以上。本博主要以验证实力为主,非专业人员请勿盲目追买。Q28438去掉汉字69889市场机会稍纵即逝,提前布局才是硬理!
大气污染防治迎“黄金五年”
国务院日前发布《大气污染防治行动计划》,作为当前和今后一个时期全国大气污染防治工作的行动指南。《计划》提出,经过五年努力,使全国空气质量总体改善,重污染天气较大幅度减少;京津冀、长三角、珠三角等区域空气质量明显好转。
民营银行设立暂无时间表
中国证券报记者从权威人士处获悉,目前关于设立民营银行的改革方向确定,但具体细则仍需谨慎研究并协调多个相关部门,才能择机推出。目前监管细则正研究制定,民营银行成立暂无明确时间表。
权威人士指出,设立民营银行并不是单一部门就能说了算,需要多方协调,设立细则、监管规则等都需要详细研究。近期来自浙江、广东、江苏等地关于设立民营银行的申请已经密集递交,但由于没有具体实施细则,目前尚无新的消息。
期市创新助力经济“第二季”
经济发展进入提质增效“第二季”,作为经济发展的重要标志,期货市场步入创新发展机遇期。观察人士认为,从服务经济转型和产业升级需要,以及中国资源优势和经济发展阶段来看,进一步拓展大宗商品期货品种覆盖面,推动铁矿石、原油、动力煤、鸡蛋、晚籼稻、粳稻等关系国计民生的期货新品种上市正合时宜。
中银绒业紧急停牌监管部门火速介入
“看上去与当年银广夏的把戏如出一辙!”“又一个紫鑫药业( !”在昨日微博上,投资者、市场人士直呼中银绒业骗局“惊心动魄”。
9月12日,上海证券报刊发中银绒业的调查报道,对公司外销客户弄虚作假、内销客户隐匿裙带关系等问题一一揭露,并对其财报真实性提出强烈质疑。这家以“优等生”姿态示人的羊绒龙头企业,在记者的调查采访中逐渐显露原形。
券商盘活资产新术:向银行出售两融收益权换活钱
业内分析认为,此方式若在行业内铺开,可为证券行业增加千亿规模资产,显著提高行业杠杆水平
近日了解到,包括国泰君安在内的多家券商已在通过向商业银行出售两融余额收益权的方式盘活两融余额资产。
上海自贸区将以产品带动资本项目开放
上海市政府参事室主任王新奎昨日表示,上海自贸区资本项目的开放将主要以产品的形式来体现。
王新奎参与了自贸区总体方案的设计,在昨日华侨银行(中国)举行的六周年活动庆典活动上他表示,中国(上海)自由贸易试验区将于本月29日正式挂牌。
证监会将完善指数产品结构提高国际化程度
在昨日举行的第七届指数与指数化投资论坛上,中国证监会基金监管部副主任杨文辉表示,随着外汇管理体制改革的深入,境内外投资者跨境指数投资需求也会快速增长,指数化投资的国际业务空间较大,有必要着力加以推动。
达沃斯论坛畅谈利率市场化银行业临生死考验
在贷款利率管制全面放开之后,存款利率管制何时放开?利率市场化对中国的银行意味着什么?在2013大连夏季达沃斯论坛上,利率市场化相关问题成为银行界大佬讨论的热点话题。
“我觉得在存款保险制度和破产制度制定之后,有那么一两年就可以承担这个风险了,(存款利率管制放开)2015年左右差不多了。”——这是民生银行行长洪崎对第一个问题给出的答案。
人民币汇率连涨四日再创新高升破6.16关口
来自中国外汇交易中心的最新数据显示,9月12日人民币兑美元汇率中间价报6.1575,较前一交易日继续上涨26个基点,并升破6.16关口,创下汇改以来新高。人民币兑美元汇率中间价已经连续上涨四日。
上周公布的美国8月非农就业数据不及预期,市场担心这可能会让美联储推迟原本计划于本月稍晚开始缩减量化宽松政策的计划,美元指数随之走弱。11日,由于美国国会推迟对叙利亚实施军事打击的投票,市场对叙利亚局势的担忧得到缓解,作为避险货币的美元对主要货币汇率继续下跌。
三策护航中国经济 A股市场后面故事更精彩
“中国经济发展的奇迹已进入提质增效的第二季,后面的故事会更精彩。”国务院总理李克强在第七届夏季达沃斯论坛上致辞时指出。笔者以为,总理对经济发展的期望是非常现实的。因为我们制定并坚决执行着适宜的宏观经济政策、改革开放也从未停步,所以中国完全有能力、有条件保持经济长期持续健康发展。经济发展已经进入“第二季”,我们有理由期待肩负重任的A股市场后面的故事更精彩。
【一牛鸣】大盘将持续震荡9.13
周五精彩短线:9月12日松辽汽车(600715)以5.70元通知建仓, 9月13日开盘必大涨。9月11日公开的汉商集团(600774)9月12日获利6%以上。本博主要以验证实力为主,非专业人员请勿盲目追买。Q28438去掉汉字69889市场机会稍纵即逝,提前布局才是硬理!
【股市收评】今天大盘在优先股试点银行的消息下,在银行板块的带动下高开高走,回补2205点一线的缺口,直接冲击2220点一线的压力,收出放量高开长阳,如何看待。在优先股的利好下大盘在银行板块的带动下出现大幅上扬,一举突破的年线的压力,与此同时,创业板出现大幅震荡,大盘冲高创业板跳水,大盘震荡,创业板开始反弹,翘翘板现象依旧,那看待今天的暴涨应该注意几个方面:
1、消息面。在消息面的刺激下银行板块的上涨可以分二个方面来看待:利好的刺激使银行板块延续着改革红利带来的冲击;另一方面,它们的上涨依旧属于补涨性质,只不过消息刺激下的补涨力度增大而已,而股指期货的助涨作用也有所体现;
2、技术上。今天大盘突破年线的上涨,属于1849点以来的五浪上涨,由于反弹很少看到五浪上涨,所以今天的上涨基本奠定了1849点以来的上涨属于起底浪的性质,由于今天的上涨留下了周线的跳空缺口,这里的缺口将成为后市强弱的标志;
3、热点。随着热点今天在消息面上转向出现转移从而导致创业板出现大幅震荡,而改革红利板块继续蔓延,今天上海板块出现局部分化,而自贸区概念继续向广东延伸。
【后市策略】总体来看,工程机械题材股12日全天火爆。从上榜个股席位发现,虽然重量级游资不多,但有些席位疑似是联手增仓,这实际上是为多方增添了砝码。考虑到目前强周期股大行其道,工程机械题材股后市或再度活跃。上海自贸区概念激发了市场对周期性板块的关注度,经济数据也表明经济开始企稳,投资者不妨对低估值的板块给予积极关注。