如何从绘制资源到SD卡上保存的图像? [英] How to save image from drawable resource to sd card?
本文介绍了如何从绘制资源到SD卡上保存的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以,我必须像下面的图片上的景色。另外,我将添加一个保存按钮。您还可以看看我的XML文件。我用这code。通过pressing下一个和previous按钮加载从绘制图像的文件夹:
公共无效的onClick(视图v){
开关(v.getId()){ 案例R.id.bNext:
一个++;
setImage(一);
打破;
案例R.id.b previous:
如果(一个大于0)
{
一个 - ;
setImage(一);
打破;
}
}
}
私人无效setImage(int类型的){
如果(A == 0)
{
slika.setImageResource(R.drawable.l2);
一个= 1;
}
否则如果(一个== 1)
{
slika.setImageResource(R.drawable.l3);
一个= 2;
}
否则如果(一个== 2)
{
slika.setImageResource(R.drawable.l4);
一个= 3;
}
否则,如果(A == 3)
{
slika.setImageResource(R.drawable.l5);
一个= 4;
}
否则,如果(A == 4)
{
slika.setImageResource(R.drawable.l6);
1 = 5;
}
。
。
。
。
。
否则,如果(A == 55)
{
slika.setImageResource(R.drawable.l57);
A = 56;
}
}
我需要保存为当前在屏幕上的图像。我发现计算器一些答案,但这些都与已知名字的特定形象。我不知道,用户将要保存什么样的形象。
<?XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =FILL_PARENT
机器人:比重=中心> < ImageView的
机器人:ID =@ + ID / imageView1
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:layout_centerHorizontal =真/> <按钮
机器人:ID =@ + ID / bMenu
机器人:layout_width =80dp
机器人:layout_height =35dp
机器人:layout_alignParentBottom =真
机器人:layout_marginBottom =10dp
机器人:layout_marginLeft =120dp
机器人:背景=@绘制/按钮
机器人:比重=中心
机器人:填充=0dp
机器人:文字=菜单
机器人:文字颜色=#FFFFFF
机器人:TEXTSIZE =23dp/> <按钮
机器人:ID =@ + ID / bnext编辑
机器人:layout_width =80dp
机器人:layout_height =35dp
机器人:layout_alignParentBottom =真
机器人:layout_marginBottom =10dp
机器人:layout_marginLeft =220DP
机器人:背景=@绘制/按钮
机器人:填充=0dp
机器人:文字=下一步
机器人:TEXTSIZE =23dp
机器人:文字颜色=#FFFFFF/> <按钮
机器人:ID =@ + ID / B previous
机器人:layout_width =80dp
机器人:layout_height =35dp
机器人:layout_alignParentBottom =真
机器人:layout_marginBottom =10dp
机器人:layout_marginLeft =20dp
机器人:背景=@绘制/按钮
机器人:比重=中心
机器人:填充=0dp
机器人:文字=previous
机器人:文字颜色=#FFFFFF
机器人:TEXTSIZE =23dp/> < / RelativeLayout的>
解决方案
无效保存(){
字符串的文件夹=/ SD卡/图片/ MyAppFolder
ImageView的观点=(ImageView的)findViewById(R.id.cachesView); view.buildDrawingCache(); 位图yourBitmap = view.getDrawingCache();
最终文件MYDIR =新的文件(文件夹);
myDir.mkdirs();
最后随机发生器=新的随机();
INT N = 10000;
N = generator.nextInt(N);
最后弦乐FNAME =StyleMe-+ N +巴纽;
档案文件=新的文件(MYDIR,FNAME);
如果(file.exists())
FileOutputStream中出=新的FileOutputStream(文件);
yourBitmap.com preSS(比较pressFormat.JPEG,100,出);
了out.flush();
out.close();
sendBroadcast(新意图(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse(文件://
+ Environment.getExternalStorageDirectory()))); //这将刷新库的应用程序。
Toast.makeText(getApplication(),图像保存,Toast.LENGTH_SHORT)
。显示();
}
请参阅
在你的类并点击按钮,就可把添加这个方法
保存();
So, i have a view like on the image below. Plus I will add a Save button. You can also see my XML file. I am using this code to load image from drawable folder by pressing the next and previous buttons:
public void onClick(View v) {
switch (v.getId()){
case R.id.bNext:
a++;
setImage(a);
break;
case R.id.bPrevious:
if(a>0)
{
a--;
setImage(a);
break;
}
}
}
private void setImage(int a){
if (a == 0)
{
slika.setImageResource(R.drawable.l2);
a = 1;
}
else if (a == 1)
{
slika.setImageResource(R.drawable.l3);
a = 2;
}
else if (a == 2)
{
slika.setImageResource(R.drawable.l4);
a = 3;
}
else if (a == 3)
{
slika.setImageResource(R.drawable.l5);
a = 4;
}
else if (a == 4)
{
slika.setImageResource(R.drawable.l6);
a = 5;
}
.
.
.
.
.
else if (a == 55)
{
slika.setImageResource(R.drawable.l57);
a = 56;
}
}
I need to save the image that is currently on the screen. I found some answers on stackoverflow, but those are all for specific image with known name. I don't know what image a user will want to save.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:gravity="center">
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/bMenu"
android:layout_width="80dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="120dp"
android:background="@drawable/buttons"
android:gravity="center"
android:padding="0dp"
android:text="Menu"
android:textColor="#ffffff"
android:textSize="23dp" />
<Button
android:id="@+id/bNext"
android:layout_width="80dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="220dp"
android:background="@drawable/buttons"
android:padding="0dp"
android:text="Next"
android:textSize="23dp"
android:textColor="#ffffff" />
<Button
android:id="@+id/bPrevious"
android:layout_width="80dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:background="@drawable/buttons"
android:gravity="center"
android:padding="0dp"
android:text="Previous"
android:textColor="#ffffff"
android:textSize="23dp" />
</RelativeLayout>
解决方案
void Save(){
String folder = "/sdcard/Pictures/MyAppFolder";
Imageview view = (ImageView)findViewById(R.id.cachesView);
view.buildDrawingCache();
Bitmap yourBitmap = view.getDrawingCache();
final File myDir = new File(folder);
myDir.mkdirs();
final Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
final String fname = "StyleMe-" + n + ".png";
File file = new File(myDir, fname);
if (file.exists())
FileOutputStream out = new FileOutputStream(file);
yourBitmap.compress(CompressFormat.JPEG, 100, out);
out.flush();
out.close();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory()))); // this will refresh the gallery app.
Toast.makeText(getApplication(), "Image Saved", Toast.LENGTH_SHORT)
.show();
}
please see
add this method in your class and on click button put
Save();
这篇关于如何从绘制资源到SD卡上保存的图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文