天道酬勤,学无止境

How can i save image as a RelativeLayout [closed]

How to save an relative layout as an bitmap image....? on run time I am adding images to relative layout.. then how to save it as an Bitmap Image.

I have no Idea on this concept... Please suggest the solutions for this.

Thank You.

标签

评论

Create an XML file:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/rlid"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"/>

Then in your activity use this code:

View content = findViewById(R.id.rlid);
content.setDrawingCacheEnabled(true);
Bitmap bitmap = content.getDrawingCache();
File file = new File("/sdcard/" + yourimagename + ".png");
try {
    if (!file.exists()) {
        file.createNewFile();
    }
    FileOutputStream ostream = new FileOutputStream(file);
    bitmap.compress(CompressFormat.PNG, 10, ostream);
    ostream.close();
    content.invalidate();
} catch (Exception e) {
    e.printStackTrace();
} finally {
        content.setDrawingCacheEnabled(false);
}

try this: put one button in relative layout and then do this process the image stored in sdcard

        btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            view.setDrawingCacheEnabled(true);
            view.buildDrawingCache();
            bm = view.getDrawingCache();

            String root = Environment.getExternalStorageDirectory()
                    .toString();
            File myDir = new File(root + "/_images");
            myDir.mkdirs();
            Random generator = new Random();
            int n = 10000;
            n = generator.nextInt(n);
            String fname = "Image-" + n + ".jpg";
            file = new File(myDir, fname);

            Log.i(TAG, "" + file);

            if (file.exists())
                file.delete();
            try {
                FileOutputStream out = new FileOutputStream(file);
                bm.compress(Bitmap.CompressFormat.JPEG, 90, out);
                out.flush();
                out.close();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何显示保存在android的sdcard文件夹中的图像(how to display images saved in sdcard folder in android [closed])
    问题 这个问题不太可能对将来的访客有所帮助; 它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。 要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 当我正在显示保存在sdcard文件夹中的图像时,我发现了以下链接。 从SDCard在gridview中显示图像。 我正在使用以下代码从sdcard中的指定文件夹获取图像,但是在这里我得到了0个计数。 MyCode.jav String[] projection = {MediaStore.Images.Media._ID}; final String[] columns = { MediaStore.Images.Media.DATA,MediaStore.Images.Media._ID }; final String orderBy = MediaStore.Images.Media._ID; Cursor imagecursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, MediaStore.Images.Media.DATA + " like ? ", new String[] {"/my_images"}, null); int image_column
  • How to take screenshot for Android Surface view
    I'm try to implement Take a Screenshot form my camera Surface view through code. I able to do of those things, however the screenshot always appears black. Here is the Code. i have searched many links and implement my code. but still screenshot appear black. how to resolve this. please guide me. thanks public class Cam_View extends Activity implements SurfaceHolder.Callback { protected static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0; private SurfaceView SurView; private SurfaceHolder camHolder; private boolean previewRunning; final Context context = this; public static Camera camera =
  • 以编程方式截取屏幕截图不会捕获surfaceVIew的内容(Taking screenshot programmatically doesnt capture the contents of surfaceVIew)
    问题 我有一个想要捕获屏幕截图的应用程序。 布局的背景是一个SurfaceView,可显示来自后置摄像头的视频。 以下代码可以截取屏幕截图,但是surfaceView的内容保存为黑色。 这是代码: btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Random num = new Random(); int nu=num.nextInt(1000); Bitmap bmp; CamView.setDrawingCacheEnabled(true); CamView.buildDrawingCache(true); Bitmap bmp2 = Bitmap.createBitmap(CamView.getDrawingCache()); //Screenshot of the layout CamView.setDrawingCacheEnabled(false); SurView.setDrawingCacheEnabled(true); SurView.buildDrawingCache(true); Bitmap bmp1 = Bitmap.createBitmap(SurView.getDrawingCache()); //Screenshot of the
  • 如何从SurfaceView创建和保存屏幕截图?(how to create and save a screenshot from a surfaceview?)
    问题 我有一个想要捕获屏幕截图的应用程序 这是我的代码: public class Screenshot { private final View view; /** Create snapshots based on the view and its children. */ public Screenshot(View root) { this.view = root; } /** Create snapshot handler that captures the root of the whole activity. */ public Screenshot(Activity activity) { final View contentView = activity.findViewById(android.R.id.content); this.view = contentView.getRootView(); } /** Take a snapshot of the view. */ public Bitmap snap() { Bitmap bitmap = Bitmap.createBitmap(this.view.getWidth(), this.view.getHeight(), Config.ARGB_8888); Canvas canvas = new
  • camera.takePicture()使我的应用崩溃(camera.takePicture() is crashing my app)
    问题 我有一个应该使用camera.takePicture拍照的应用程序。 我使用的代码如下: private Bitmap bitmapPicture; //inside onCreate btn.setOnClickListener(new OnClickListener(){ public void onClick(View v){ camera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG); } }); //inside the activity ShutterCallback myShutterCallback = new ShutterCallback(){ @Override public void onShutter() { // TODO Auto-generated method stub }}; PictureCallback myPictureCallback_RAW = new PictureCallback(){ @Override public void onPictureTaken(byte[] arg0, Camera arg1) { // TODO Auto-generated method stub }}; PictureCallback
  • 如何在android中捕获屏幕并将其转换为图像[重复](how to Capture screen in android and covert it to image [duplicate])
    问题 这个问题在这里已经有了答案: 8 年前关闭。 可能的重复: 安卓截图 任何人请帮我解决这个.. 如何以编程方式在android中捕获屏幕内容/.// 提前致谢.. 回答1 试试这个代码,不要忘记在你的 Manifest.xml 中添加这个权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 主文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/capturescreen
  • 用相机拍照并获取位图[重复](Take a picture with camera and get bitmap [duplicate])
    问题 这个问题已经在这里有了答案: 从相机捕获图像并在活动中显示(17个答案) 6年前关闭。 我正在使用前置摄像头为用户模拟镜子的android应用程序。 我需要该应用程序每5秒钟以位图的方式拍摄一张图片(自动且无需用户交互),然后稍后再与另一个位图结合使用。 对我而言,最困难的部分是:如何拍照并以位图的形式获取? 我尝试了几种解决方案,但都没有奏效。 标记为重复的另一个问题是手动执行此操作,而不是自动执行。 回答1 我使用以下代码在布局背景中显示实时摄像头,该按钮将图像另存为jpeg。 尝试根据需要进行修改:您可以在此处下载整个测试项目,以便快速进行测试:http://www.4shared.com/rar/v-ZQPybcce/Test.html --- >>此代码与使用意图的其他代码的区别在于,它无需打开照相机应用程序即可自动拍摄图片,从而使该应用程序看起来更好:) <---- package com.mreprogramming.test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException
  • How do I convert a RelativeLayout with an Imageview and TextView to a PNG image?
    In my Android App Activity, I have a RelativeLayout with one ImageView and a couple of TextViews being populated at runtime. I also have a Save button in the activity that I use to save the image in the ImageView to the device SD Card. Now what I really want to do is Convert the elements (image and the text in the RelativeLayout) together to a PNG image when the Save button is clicked and Save it to the SD Card. Have anyone tried a conversion like this before? It would be very helpful if someone can give me some hints or code snippets on how to go about doing this? The Save functionality works
  • 采取screensot并保存android(Take screensot and save android)
    问题 我是一个非常新的android开发人员,对java有基本的了解。 我已经进行了一个大型项目,但遇到了一个我似乎可以解决的问题。 基本上我的问题分为三个部分: 我需要截取我的布局的屏幕截图。 我不能只使用内置的屏幕截图功能,而是需要在按下按钮时完成。 然后,我需要裁剪图片,以便图片仅是ImageView和位于其上方的TextView 。 (除非有更简单的方法可以做到这一点?) 最后,我需要将裁剪后的图片保存到某种类型的内存中,无论是sd卡,设备的内存还是图库(不推荐)。 非常感谢任何帮助,非常感谢 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rl" tools:context=".Preview" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="80dp"
  • 自定义布局,圆满完成其内容(Custom Layout that rounds the corners of its content)
    问题 我想创建一个通用的ViewGroup,然后可以在XML布局中重用它以使放入其中的任何内容都变得圆满。 由于某些原因, canvas.clipPath()似乎没有效果。 我究竟做错了什么? 这是Java代码: package rounded; import static android.graphics.Path.Direction.CCW; public class RoundedView extends FrameLayout { private float radius; private Path path = new Path(); private RectF rect = new RectF(); public RoundedView(Context context, AttributeSet attrs) { super(context, attrs); this.radius = attrs.getAttributeFloatValue(null, "corner_radius", 0f); } @Override protected void onDraw(Canvas canvas) { int savedState = canvas.save(); float w = getWidth(); float h = getHeight(); path.reset
  • Passing Bitmap between two activities [duplicate]
    This question already has answers here: How can I pass a Bitmap object from one activity to another (10 answers) Closed 2 years ago. I am developing a painting app in which i want to pass a Bitmap image from one activity to another but the project is not responding. I converted the relative layout screenshot into a bitmap and passing it through Intent but the problem is not solved. Here is my code.... DrawingActivity package com.newdrawing; public class DrawingActivity extends Activity { private Bitmap mBitmap; private Canvas mCanvas; private Path mPath; private Paint mBitmapPaint; private
  • 创建可下载的自定义主题并在运行时应用(Create downloadable custom theme and apply it during run time)
    问题 我正在制作一个Android应用,该应用需要允许客户端维护其服务器上的资源,其中包括字符串,可绘制对象等。 我已经创建了一种用于下载包含所有这些文件的zip文件的机制,并且它们能够轻松更改字符串,我还创建了一种机制,该机制允许客户端更改UI控件的bg颜色,更改宽度,高度等,但我感觉必须有一种更好的方法来创建所有这些内容。 所以我相信真正的问题是: 创建自定义主题,将其部署在服务器上,让应用下载并随后将其应用于应用的最佳实践是什么? 我知道如何创建自定义主题以及如何与应用程序一起部署它,以及如何在运行时应用它,但是这里的问题是资源是预先编译的,一旦创建APK,开发人员就无法更改它们必须添加新主题/可绘制对象/样式/字符串。 我是否需要为此创建一个自定义机制(从文件系统加载图像,样式,字符串等),并在运行时通过创建自己的控件来应用它们,例如在构造函数中执行此操作,或者是否有办法这适当的:)? (Swiftkey如何使用所有键盘主题执行此操作,以及类似的应用程序如何做到这一点,从而允许用户下载主题并在此之后应用主题)? 很抱歉,如果我没有看到类似的问题,我确实在过去两天内尝试自己找到一个答案,但是我找不到任何有用的东西,因此这是我获得建设性答案的最后机会:)。 我需要的最接近解决方案的答案是:使用外部主题文件在运行时更改应用程序主题,但是我已经实现了该功能,并且我知道我可以更改颜色
  • 拍摄SurfaceView的屏幕截图(Take Screenshot of SurfaceView)
    问题 正在开发一个简单的相机应用程序。 我有将整个活动的屏幕截图截取并将其写入SD卡的代码。 问题是Surfaceview返回黑屏。 我想知道如何仅单独拍摄Surfaceview的屏幕截图。 这是获取整个活动的屏幕截图的代码。 findViewById(R.id.screen).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final RelativeLayout layout = (RelativeLayout) findViewById(R.id.RelativeLayout1); layout.setVisibility(RelativeLayout.GONE); Bitmap bitmap = takeScreenshot(); Toast.makeText(getApplicationContext(),"Please Wait", Toast.LENGTH_LONG).show(); saveBitmap(bitmap); } }); } public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView
  • 在两个活动之间传递位图[重复](Passing Bitmap between two activities [duplicate])
    问题 这个问题已经在这里有了答案: 如何将位图对象从一项活动传递到另一项活动(10个答案) 2年前关闭。 我正在开发一个绘画应用程序,在该应用程序中我想将位图图像从一个活动传递到另一个活动,但是该项目没有响应。 我将相对布局屏幕截图转换为位图,并将其通过Intent传递,但问题仍未解决。 这是我的代码。 DrawingActivity package com.newdrawing; public class DrawingActivity extends Activity { private Bitmap mBitmap; private Canvas mCanvas; private Path mPath; private Paint mBitmapPaint; private Paint mPaint; MyDrawView myDrawView; RelativeLayout parent; Bitmap bitmap; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_drawing); parent = (RelativeLayout) findViewById(R
  • Android studio调用手机相机拍照显示并保存+读取本地相册并显示
    移植深度学习训练好的模型,第一步是可以使用安卓手机的相机进行拍照或者访问相册进行图片选择。第二步,调用模型,进行结果显示。现在记录第一步的代码实现。 我的界面有三个,第一个是MainActivity,第二个是Camera拍照的显示,第三个是Albums的显示。 结构介绍 1.activity_main.xml和MainActivity.java介绍1.1.activity_main.xml代码1.2.MainActivity.java代码及介绍 2.albums.xml和Albums.java介绍以及添加方法介绍2.1.albums.xml代码介绍和添加方法2.2.Albums.java代码介绍和添加方法 3.camera.xml和Camera.java代码介绍及添加方法3.1.camera.xml的添加方法和代码3.2.Camera.java的添加方法和代码 4.在AndroidManifest.xml中添加注册4.1.注册除了MainActivity的其他两个界面,添加provider4.2.申请使用相机的权限,读写 5.添加图片保存的xml路径,添加方法和内容点击运行,可以在虚拟设备上运行了运行或安装的问题总结续上次的程序总结 1.activity_main.xml和MainActivity.java介绍 1.1.activity_main.xml代码 首先是activity
  • 如何在Android中使用共享意图共享图像+文本(How to Share Image+Text using Share Intent in android)
    问题 我使用此代码,但无法正常工作。 String Body = "Deals Name: " + Bussinessname + "\n" + "Deals: " + deal + "\n" + "Address: " + city + " ," + country; Intent share = new Intent(android.content.Intent.ACTION_SEND); Uri screenshotUri = Uri.parse(Images.Media.EXTERNAL_CONTENT_URI + "/" + image); share.setType("image/*"); share.putExtra(Intent.EXTRA_SUBJECT, "The EssexPass"); share.putExtra(Intent.EXTRA_TEXT, Body); share.putExtra(Intent.EXTRA_STREAM, screenshotUri); startActivity(Intent.createChooser(share, "Share Deal")); 当我使用文字类型时,它可以正常工作。 但我想分享文字和图片。 而且共享意图在FaceBook中不起作用。 回答1 试用以下代码: String fileName = "image
  • 如何在 Android 应用程序中用手指画一些东西……并将其保存到网络(How to Draw something with your finger in an Android App… And save it to the web)
    问题 **此问题已成功回答并已成为博客帖子 <- 点击 ** 嗨,我是一名 PHP 开发人员,我想做一件简单的事情 - 我想在 Android 手机的空白页面上绘制一些东西(用带有较大“模拟笔尖”的手指)并将位图作为 jpeg 存储在服务器通过http post。 这是我到目前为止所拥有的,但这是从一个涉及为游戏编写精灵的教程中获取的......而且我无法适应它 package com.my.example; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.os.Bundle; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.View.OnTouchListener; public class DrawCapture extends
  • 将ID设置为Google Map API v2标记以返回相机意图拍摄的图像(Setting ID to google map API v2 marker to return image taken by camera intent)
    问题 好的,这个问题我已经面临了几天,而且似乎无法解决。 这是我的地图的工作方式: 点按地图上的任何一点通过相机意图拍照将照片作为标记(缩略图)返回到所点击的特定点。 (以上所有方法都可以) 这就是我被困住的地方: 轻触标记(图像),然后应该显示较大的标记图像,因为标记缩略图很小。 问题在于它显示了最新拍摄的图像,而不是与该标记相关的图像。 所以我的问题是如何设置标记ID,以便当用户点击该标记以显示完整图像时。 在此之前,我曾在SO上问过这个问题,但是不得不更改我的代码,以便将图像保存在设备上的文件夹中。 另外还有一个单独的类来创建缩略图。 (但是,我认为这不会对添加标记ID产生任何影响) 这是直到显示正确的标记图像的代码。 (这仅显示最新拍摄的图像): 相机意图 Intent getCameraImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); getApplicationContext().getDir( getResources().getString(R.string.app_name), MODE_PRIVATE); fileUri = Uri.fromFile(new File((Environment.getExternalStorageDirectory() + "/" +getResources()
  • Android:如何防止图像在ImageView或ImageButton中缩放?(Android: How to prevent image from being scaled in ImageView or ImageButton?)
    问题 如果使用“ fill_parent”或“ weight”拉伸视图或按钮,如何防止在ImageView或ImageButton中自动缩放位图? 例如,这对于在屏幕顶部创建一个等距分布的4按钮工具栏很有用,但是即使我使用scaleType =“ center”,按钮内部的图像也会不断拉伸,这应该避免根据文档缩放,但事实并非如此。 任何见识表示赞赏! 谢谢, 回答1 我发现使用android:background时会自动将您正在使用的图像缩放到View的大小。 我尝试使用android:src将图像放在视图中。 图像没有缩放,但是我无法使图像相对于View的大小居中。 因此,我尝试将整个Button设置为自己的相对布局,这就是我使用的方法: <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_height="fill_parent" android:layout_width="fill_parent"> <ImageButton android:id="@+id/ImageButton01" android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageButton> <ImageView android:id
  • Android中的自定义进度栏? [关闭](Custom Progress Bar in Android? [closed])
    问题 关门了。 这个问题需要更加集中。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使其仅通过编辑此帖子即可将重点放在一个问题上。 6年前关闭。 改善这个问题 我对如何做到这一点一无所知。 我的进度条应该是云的形状。 有人可以将我引导到书,教程中,还是只提供正确的逐步方法? 感谢您的时间。 回答1 如此处所示,您可以使用图像视图来获得自定义滚动条效果。 在该示例中,自定义进度栏的布局XML是: <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center" android:layout_height="wrap_content" android:paddingLeft="30sp" android:paddingRight="30sp"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/progress_1" android:id="@