重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
安卓中调用摄像头和相册中要声明权限,用Android Studio做app的话就可以
创新互联主营朝阳网站建设的网络公司,主营网站建设方案,app软件定制开发,朝阳h5微信小程序开发搭建,朝阳网站营销推广欢迎朝阳等地区企业咨询
1、创建imageview对象
2、设置imageview的图片
3、添加到布局中
示例代码
ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup); //获取原来的布局容器
ImageView imageView = new ImageView(this); //创建imageview
imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); //image的布局方式
imageView.setImageResource(R.drawable.ic_launcher); //设置imageview呈现的图片
group.addView(imageView); //添加到布局容器中,显示图片。
private File file;
private String fileFileName;
private String picture;
//都有getter 和 setter
InputStream is = new FileInputStream(file);
//引入一个IO流的输入流
String root = ServletActionContext.getRequest()
.getRealPath("/bookpicture");
//通过REQUEST来得到相对地址,并在后面加上/bookpicture
File f = new File(root, this.getFileFileName());
//定义一个FILE文件,第一个参数是文件的路径,第二个是文件的名字
picture="."+"\\"+"bookpicture"+"\\"+this.getFileFileName();
//为PICTURE字符串赋值,/地址/文件名
System.out.println
("======picture====="+picture);
//从控制台输出Picture
OutputStream os = new FileOutputStream(f);
//第一个文件的输出流
byte[] buffer = new byte[1024];
//定义一个bufer的字符串,长度为1024
int len = 0;
while ((len = is.read(buffer)) 0) {
//如果从制定文件中读取到的信息为结束就继续循环
os.write(buffer, 0, len);
//将文件读出的内容写入到指定的文件中
}
首先导入各种需要的包:\x0d\x0aimport java.awt.Image;\x0d\x0aimport javax.imageio.ImageIO;\x0d\x0aimport java.io.*;\x0d\x0a读取图片的方法如下:\x0d\x0aImage[] array = new Image[10];\x0d\x0aImage image = ImageIO.read(new File("d:\\source.gif"));//根据你实际情况改文件路径吧\x0d\x0aarray[0] = image;\x0d\x0a图片读出来了。\x0d\x0a\x0d\x0a如果你有一个Image对象,想把它写入文件可以这样做:\x0d\x0aBufferedImage image = ImageIO.read(new File("d:\\source.gif"));\x0d\x0a//要想保存这个对象的话你要把image声明为BufferedImage 类型\x0d\x0aImageIO.write(image, "png", new File("f:\\test.png"));
很简单。
可以手写IO读写(有点麻烦)。
怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
//设置保存上传文件的目录
String uploadDir =getServletContext().getRealPath("/up");
System.out.println(uploadDir);
if (uploadDir == null)
{
out.println("无法访问存储目录!");
return;
}
//根据路径创建一个文件
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists()){
if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出...
{
out.println("无法创建存储目录!");
return;
}
}
if (!DiskFileUpload.isMultipartContent(request))
{
out.println("只能处理multipart/form-data类型的数据!");
return ;
}
DiskFileUpload fu = new DiskFileUpload();
//最多上传200M数据
fu.setSizeMax(1024 * 1024 * 200);
//超过1M的字段数据采用临时文件缓存
fu.setSizeThreshold(1024 * 1024);
//采用默认的临时文件存储位置
//fu.setRepositoryPath(...);
//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
fu.setHeaderEncoding("gb2312");
//得到所有表单字段对象的集合
List fileItems = null;
try
{
fileItems = fu.parseRequest(request);//解析request对象中上传的文件
}
catch (FileUploadException e)
{
out.println("解析数据时出现如下问题:");
e.printStackTrace(out);
return;
}
//处理每个表单字段
Iterator i = fileItems.iterator();
while (i.hasNext())
{
FileItem fi = (FileItem) i.next();
if (fi.isFormField()){
String content = fi.getString("GB2312");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName,content);
}else{
try
{
String pathSrc = fi.getName();
if(pathSrc.trim().equals("")){
continue;
}
int start = pathSrc.lastIndexOf('\\');
String fileName = pathSrc.substring(start + 1);
File pathDest = new File(uploadDir, fileName);
fi.write(pathDest);
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, fileName);
}catch (Exception e){
out.println("存储文件时出现如下问题:");
e.printStackTrace(out);
return;
}
finally //总是立即删除保存表单字段内容的临时文件
{
fi.delete();
}
}
}
注意 JSP页面的form要加enctype="multipart/form-data" 属性, 提交的时候要向服务器说明一下 此页面包含文件。
如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握。
-----------------------------
以上回答,如有不明白可以联系我。
我自己做过一个类似的电子相册,但功能很不够全面,给你参考下...
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class img4 extends Applet
{
static Button btn1,btn2,btn3,btn4,btn5;
public void init()
{
setBackground(Color.cyan);
setVisible(true);
setLayout(null);
img4cvs cvs=new img4cvs();
btn1=new Button("下一页");
btn2=new Button("上一页");
btn4=new Button("自动播放");
btn5=new Button("停止");
add(btn1);
add(btn2);
add(btn4);
add(btn5);
add(cvs);
btn2.setBounds(550,60,60,30);
btn1.setBounds(550,120,60,30);
btn4.setBounds(550,180,60,30);
btn5.setBounds(550,240,60,30);
cvs.setBounds(30,30,500,400);
btn1.addActionListener(cvs);
btn2.addActionListener(cvs);
btn4.addActionListener(cvs);
btn5.addActionListener(cvs);
validate();
}
class Backcolor extends Thread
{
public void run()
{int j=0;int m=0;int n=0;
while(true)
{
try{
if(j255m255n255)
{
j++;
sleep(100);
Color col1=new Color(j,m,n);
setBackground(col1); }
else if(j==255m255)
{
m++;
sleep(100);
Color col2=new Color(j,m,n);
setBackground(col2); }
else if(j==255m==255n255)
{
n++;
sleep(100);
Color col3=new Color(j,m,n);
setBackground(col3);}
else if(j==255m==255n==255)
{
j=55;
m=55;
n=55;
}
}
catch(InterruptedException e){}
}
}
}
public void start()
{
Backcolor thread2=new Backcolor();
thread2.start();
}
}
class img4cvs extends Canvas implements ActionListener
{
Image[] img;
int pg=0;
volatile boolean pleaseStop;
//String FONTS="Serif";
//String TEXT="我们很性感2!!";
img4cvs()
{
img=new Image[12];
Toolkit tl=getToolkit();
for(int i=0;i=11;i++)
{
img[i]=tl.getImage("img0"+i+".JPG");
}
}
class Play extends Thread
{
public void run()
{
while(!pleaseStop)
{
try{
pg++;
if(pg11){pg=0;}
sleep(1500);
}
catch(InterruptedException e){}
repaint();
}
}
}
public void actionPerformed(ActionEvent e)
{
Play thread=new Play();
if(e.getSource()==img4.btn1)
{
pg++;
if(pg11){pg=0;}
repaint();
}
else if(e.getSource()==img4.btn2)
{
pg--;
if(pg0){pg=11;}
repaint();
}
else if(e.getSource()==img4.btn4)
{
pleaseStop=false;
thread.start();
}
else if(e.getSource()==img4.btn5)
{
pleaseStop=true;
}
}
public void paint(Graphics g)
{
/*g.setColor(Color.black);
g.setFont(new Font(FONTS,Font.BOLD+Font.ITALIC,20));
g.drawString(TEXT,0,500);*/
g.drawImage(img[pg],0,0,500,400,this);
}
}
/*
applet code="img4.class" width=650 height=500
/applet
*/