android - 将 imageview() 和 textview() 保存到设备

标签 android android-layout textview imageview android-sdcard

我的应用程序有一个 RealtiveLayout() 和一个 ImageView() 和两个 TextView()

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="300dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:src="@drawable/second_splash" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:text="Top Text"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="35sp"
    android:textStyle="bold"
    android:shadowColor="@color/butbg"
    android:shadowRadius="20"
    />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:shadowColor="@color/butbg"
    android:shadowRadius="20"
    android:text="Down Text"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="35sp"
    android:textStyle="bold" />

如何通过单击按钮将带有两个 TextView 的 ImageView() 保存到设备的 SD 卡中?

最佳答案

对于图像: 首先,您需要添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

然后,获取位图:

 BitmapDrawable drawable = (BitmapDrawable) mImageView1.getDrawable();
 Bitmap bitmap = drawable.getBitmap();

创建你的文件:

 File sdCardDirectory = Environment.getExternalStorageDirectory();
 File image = new File(sdCardDirectory, "test.png");

写入位图:

boolean success = false;

// Encode the file as a PNG image.
FileOutputStream outStream;
try {

    outStream = new FileOutputStream(image);
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
    /* 100 to keep full quality of the image */

    outStream.flush();
    outStream.close();
    success = true;
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

if (success) {
        Toast.makeText(getApplicationContext(), "Image saved with success",
                Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(getApplicationContext(),
                "Error during image saving", Toast.LENGTH_LONG).show();
    }

对于文本,您只需将文本写入文件即可。

关于android - 将 imageview() 和 textview() 保存到设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27645341/

相关文章:

android - 膨胀类 android.support.v7.widget.AppCompatTextView 时出错

Android Textview 文本大小由 XML 和 Java 设置不同

java - 如何停止textView滚动?

android - 在android中单击键盘中的下一个按钮时自动滚动edittext

android - 如何迭代 JsonReader 两次?

android - Android ListView 上的 Admob 横幅调整

java - 在运行时将按钮添加到布局

android - Google Currents 喜欢逐页阅读风格

android - libGDX:挂绳

android - ADB 驱动程序和 Windows 8.1