使用TextView将imageView保存到sdcard中

时间:2014-05-21 11:13:20

标签: android imageview android-drawable

我有一个带有一些文本的imageView,我想通过onClick按钮保存到我的SD卡中。这就是我实现它的方式:

ImageView blankcard= (ImageView) findViewById(R.id.blankcard);
blankcard.setBackgroundResource(R.drawable.temp3);

btn3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {



            //Display the message in textview
            TextView stv1 = (TextView) findViewById(R.id.crdName);
            TextView stv2 = (TextView) findViewById(R.id.crdCompany);
            TextView stv3 = (TextView) findViewById(R.id.crdPhone);
            TextView stv4 = (TextView) findViewById(R.id.crdMobile);
            TextView stv5 = (TextView) findViewById(R.id.crdAddress);
            TextView stv6 = (TextView) findViewById(R.id.crdWebsite);
            TextView stv7 = (TextView) findViewById(R.id.crdEmail);
            TextView stv8 = (TextView) findViewById(R.id.crdTitle);

            Intent intent=getIntent();

            String Name = intent.getStringExtra("name");
            String Company = intent.getStringExtra("company");
            String Phone = intent.getStringExtra("phone");
            String Mobile = intent.getStringExtra("mobile");
            String Address = intent.getStringExtra("address");
            String Email = intent.getStringExtra("email");
            String Website = intent.getStringExtra("website");
            String Title = intent.getStringExtra("title");

            stv1.setText(Name+" ");
            stv2.setText(Company);
            stv3.setText("  "+Phone);
            stv4.setText(Mobile+" ");
            stv5.setText("  "+Address);
            stv6.setText("  "+Email);
            stv7.setText(Website+"  ");
            stv8.setText(Title+" ");

            stv1.setVisibility(View.VISIBLE);               
            stv2.setVisibility(View.VISIBLE);
            stv3.setVisibility(View.VISIBLE);
            stv4.setVisibility(View.VISIBLE);
            stv5.setVisibility(View.VISIBLE);
            stv6.setVisibility(View.VISIBLE);
            stv7.setVisibility(View.VISIBLE);
            stv8.setVisibility(View.VISIBLE);


            blankcard.setBackgroundResource(R.drawable.temp3);
            blankcard.setDrawingCacheEnabled(true);

                Bitmap bitmap = blankcard.getDrawingCache();

                String root = Environment.getExternalStorageDirectory().toString();
                File newDir = new File(root + "/MapCards");    
                newDir.mkdirs();
                Random gen = new Random();
                int n = 10000;
                n = gen.nextInt(n);
                String fotoname = "Photo-"+ n +".jpg";
                File file = new File (newDir, fotoname);
                if (file.exists ()) file.delete (); 
                    try {
                       FileOutputStream out = new FileOutputStream(file);
                       bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
                       out.flush();
                       out.close();
                       Toast.makeText(getApplicationContext(), "Saved to your folder", Toast.LENGTH_SHORT ).show();

                    } catch (Exception e) {

                    }

             }
    });

单击按钮后,将在某个目录中创建文件并保存图像视图。但我只能看到模板,而不是我已经在imageView上设置的文本。如何更有效地使用Drawable来实现这一目标?谢谢。

修改

.XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/stainbck"
android:orientation="vertical"
android:padding="25dp" >

<LinearLayout
android:id="@+id/relative"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

    <Button
        android:id="@+id/btn3"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="3" />

</LinearLayout>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_marginTop="30dp" >

    <ImageView
        android:id="@+id/blankcard"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:scaleType="fitStart" />



    <TextView
        android:id="@+id/crdCompany"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Company"
        android:textColor="#20526d"
        android:textSize="15sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdWebsite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="16dp"
        android:text="website"
        android:textColor="#20526d"
        android:textSize="9sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdAddress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/crdPhone"
        android:layout_alignParentLeft="true"
        android:text="address"
        android:textColor="#20526d"
        android:textSize="13sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/crdWebsite"
        android:layout_alignBottom="@+id/crdWebsite"
        android:layout_alignParentRight="true"
        android:text="email"
        android:textColor="#20526d"
        android:textSize="9sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdPhone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/crdWebsite"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="17dp"
        android:text="phone"
        android:textColor="#20526d"
        android:textSize="13sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/crdCompany"
        android:text="name"
        android:textColor="#20526d"
        android:textSize="13sp"
        android:textStyle="bold"
         />

    <TextView
        android:id="@+id/crdTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/crdName"
        android:layout_marginTop="12dp"
        android:text="title"
        android:textColor="#20526d"
        android:textSize="13sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/crdMobile"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/crdTitle"
        android:layout_marginTop="5dp"
        android:text="mobile"
        android:textColor="#20526d"
        android:textSize="13sp"
        android:textStyle="bold" />

</RelativeLayout>
</LinearLayout>

0 个答案:

没有答案