三星手机调用照相机:SFEffectCache:clear(), mSize = 0

本文介绍了一个名为MenuIncomeActivity的Android应用组件,该组件允许用户通过调用相机功能进行图片拍摄,并将拍摄的照片保存到指定目录下。此外,文章还详细展示了如何实现拍照后的图片更新到相册。
package com.financialstatistics.activity;


import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;


/**
 * 收入
 */
public class MenuIncomeActivity extends BaseActivity {


private ImageView image_photo;
private Context context;
private String fileName;
private Activity activity;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_payout);
context = this;
activity = MenuIncomeActivity.this;
image_photo = (ImageView) findViewById(R.id.image_photo);
image_photo.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
letCamera();
}
});
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:// 拍照
if (resultCode == RESULT_OK) {
Toast.makeText(this, "拍摄成功", Toast.LENGTH_SHORT).show();
try {
upData(activity, fileName);
} catch (Exception e) {
System.out.println("刷新相册异常:" + e);
}
}
break;
default:
break;
}
}


private void letCamera() {
Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String strImgPath = Environment.getExternalStorageDirectory()
.toString() + "/Income/";// 存放照片的文件夹
fileName = "income_" + new SimpleDateFormat("yyyyMMddHHmmss")// yyyyMMddHHmmss
.format(new Date()) + ".jpg";// 照片命名
File out = new File(strImgPath);
if (!out.exists()) {
out.mkdirs();
}
out = new File(strImgPath, fileName);
strImgPath = strImgPath + fileName;// 该照片的绝对路径
Uri uri = Uri.fromFile(out);
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(imageCaptureIntent, 1);
}


private void upData(Activity activity, String fileName) {
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File(fileName));
intent.setData(uri);
activity.sendBroadcast(intent);
}
}
bool RS_Math::linearSolver(const std::vector<std::vector<double> >& mt, std::vector<double>& sn){ //verify the matrix size size_t mSize(mt.size()); //rows size_t aSize(mSize+1); //columns of augmented matrix if(std::any_of(mt.begin(), mt.end(), [&aSize](const std::vector<double>& v)->bool{ return v.size() != aSize; })) return false; sn.resize(mSize);//to hold the solution #if false boost::numeric::ublas::matrix<double> bm (mSize, mSize); boost::numeric::ublas::vector<double> bs(mSize); for(int i=0;i<mSize;i++) { for(int j=0;j<mSize;j++) { bm(i,j)=mt[i][j]; } bs(i)=mt[i][mSize]; } //solve the linear equation set by LU decomposition in boost ublas if ( boost::numeric::ublas::lu_factorize<boost::numeric::ublas::matrix<double> >(bm) ) { std::cout<<__FILE__<<" : "<<__func__<<" : line "<<__LINE__<<std::endl; std::cout<<" linear solver failed"<<std::endl; // RS_DEBUG->print(RS_Debug::D_WARNING, "linear solver failed"); return false; } boost::numeric::ublas:: triangular_matrix<double, boost::numeric::ublas::unit_lower> lm = boost::numeric::ublas::triangular_adaptor< boost::numeric::ublas::matrix<double>, boost::numeric::ublas::unit_lower>(bm); boost::numeric::ublas:: triangular_matrix<double, boost::numeric::ublas::upper> um = boost::numeric::ublas::triangular_adaptor< boost::numeric::ublas::matrix<double>, boost::numeric::ublas::upper>(bm); ; boost::numeric::ublas::inplace_solve(lm,bs, boost::numeric::ublas::lower_tag()); boost::numeric::ublas::inplace_solve(um,bs, boost::numeric::ublas::upper_tag()); for(int i=0;i<mSize;i++){ sn[i]=bs(i); } // std::cout<<"dn="<<dn<<std::endl; // data.center.set(-0.5*dn(1)/dn(0),-0.5*dn(3)/dn(2)); // center // double d(1.+0.25*(dn(1)*dn(1)/dn(0)+dn(3)*dn(3)/dn(2))); // if(fabs(dn(0))<RS_TOLERANCE2 // ||fabs(dn(2))<RS_TOLERANCE2 // ||d/dn(0)<RS_TOLERANCE2 // ||d/dn(2)<RS_TOLERANCE2 // ) { // //ellipse not defined // return false; // } // d=sqrt(d/dn(0)); // data.majorP.set(d,0.); // data.ratio=sqrt(dn(0)/dn(2)); #else // solve the linear equation by Gauss-Jordan elimination std::vector<std::vector<double> > mt0(mt); //copy the matrix; for(size_t i=0;i<mSize;++i){ size_t imax(i); double cmax(fabs(mt0[i][i])); for(size_t j=i+1;j<mSize;++j) { if(fabs(mt0[j][i]) > cmax ) { imax=j; cmax=fabs(mt0[j][i]); } } if(cmax<RS_TOLERANCE2) return false; //singular matrix if(imax != i) {//move the line with largest absolute value at column i to row i, to avoid division by zero std::swap(mt0[i],mt0[imax]); } for(size_t k=i+1;k<=mSize;++k) { //normalize the i-th row mt0[i][k] /= mt0[i][i]; } mt0[i][i]=1.; for(size_t j=0;j<mSize;++j) {//Gauss-Jordan if(j != i ) { double& a = mt0[j][i]; for(size_t k=i+1;k<=mSize;++k) { mt0[j][k] -= mt0[i][k]*a; } a=0.; } } //output gauss-jordan results for debugging // std::cout<<"========"<<i<<"==========\n"; // for(auto v0: mt0){ // for(auto v1:v0) // std::cout<<v1<<'\t'; // std::cout<<std::endl; // } } for(size_t i=0;i<mSize;++i) { sn[i]=mt0[i][mSize]; } #endif return true; }
08-19
将以下程序补充完整 #include <iostream> #include <fstream> #include <iomanip> using namespace std; template <typename ElemType> class myArrayList { private: int mSize; int mLen; ElemType *mpArr; public: myArrayList(int n); myArrayList(ElemType *a,int n); void show(); ElemType getMax(); //以下函数由同学完成 //void sort(); //myArrayList(myArrayList<ElemtType> &other);//拷贝构造函数 //mymyArrayList<ElemType> & operator =(mymyArrayList<ElemType> &other) }; template <typename ElemType> myArrayList<ElemType>::myArrayList(int n) { this->mSize=n; this->mLen=0; this->mpArr=new ElemType[mSize]; } template <typename ElemType> myArrayList<ElemType>::myArrayList(ElemType *a,int n) { this->mSize=n; this->mLen=n; this->mpArr=new ElemType[mSize]; for(int i=0;i<mLen;i++) mpArr[i]=a[i]; } template <typename ElemType> void myArrayList<ElemType>::show() { for(int i=0;i<mLen;i++) cout<<setw(4)<<mpArr[i]; cout<<endl; } template <typename ElemType> ElemType myArrayList<ElemType>::getMax() { ElemType max; max=mpArr[0]; for(int i=1;i<mLen;i++) if(max<mpArr[i]) max=mpArr[i]; return max; } //Student.h class Student { private: int mId; float height; int score; public: Student(int id=0,float h=0,int s=0):height(h),mId(id),score(s) { } friendbool operator <(Student &a1,Student &a2) { if(a1.height<a2.height) return true; else return false; } friend ostream &operator <<(ostream &out,Student &s) { out<<"ID:"<<s.mId<<" Height:"<<s.height<<" Socre:"<<s.score<<endl; return out; } }; //主程序 int main() { int a[]={1,2,3,5,7,9,12,8}; double b[]={1,2.5,3.6,5,7,9,12.8,8}; myArrayList <int> list1(a,8); list1.show(); cout<<"max="<<list1.getMax()<<endl; myArrayList <double> list2(b,8); list2.show(); cout<<"max="<<list2.getMax()<<endl; Student s[3]={Student(1,175,80),Student(2,178,90),Student(3,195,83)},s1; myArrayList <Student> list3(s,3); list3.show(); cout<<"max="<<list3.getMax()<<endl; } 说明: 将以下程序补充完整 //void sort(); //myArrayList(myArrayList<ElemtType> &other);//拷贝构造函数 //mymyArrayList<ElemType> operator =(mymyArrayList<ElemType> &other) //修改补充 Student类,要求按成绩排序(从高到低)
06-01
多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值