Hola,
Descargue el código fuente desde aquí ( convierta la imagen a pdf en Android mediante programación )
activity_main.xml:
- ¿Hay alguna forma de convertir un video con formato de archivo M3U8 a un mp4 desde un Android?
- Cómo convertir un archivo de CR2 a un .jpg en Windows 7
- ¿Cuál es la mejor manera de convertir Windows Movie Maker a MP4 en línea?
- Cómo saber si un archivo MP3 se ha convertido de un formato de tasa de bits con más pérdidas a uno más alto (por lo tanto, no hay diferencia en la calidad)
- ¿Qué tan fácil es crear un convertidor de archivos para un tipo de archivo único?
MainActivity.java:
paquete com.deepshikha.convertbitmap;
importar android.Manifest;
importar android.app.ProgressDialog;
importar android.content.Context;
importar android.content.Intent;
importar android.content.pm.PackageManager;
importar android.database.Cursor;
importar android.graphics.Bitmap;
importar android.graphics.BitmapFactory;
importar android.graphics.Canvas;
importar android.graphics.Color;
importar android.graphics.Paint;
importar android.graphics.pdf.PdfDocument;
importar android.net.Uri;
importar android.provider.MediaStore;
importar android.support.v4.app.ActivityCompat;
importar android.support.v4.content.ContextCompat;
importar android.support.v7.app.AppCompatActivity;
importar android.os.Bundle;
importar android.util.DisplayMetrics;
importar android.util.Log;
importar android.view.Display;
importar android.view.View;
importar android.view.WindowManager;
importar android.widget.Button;
importar android.widget.ImageView;
importar android.widget.Toast;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
clase pública MainActivity extiende AppCompatActivity implementa View.OnClickListener {
public static final int GALLERY_PICTURE = 1;
Botón btn_select, btn_convert;
ImageView iv_image;
boolean boolean_permission;
boolean boolean_save;
Mapa de bits mapa de bits;
public static final int REQUEST_PERMISSIONS = 1;
@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
en eso();
oyente();
fn_permission ();
}
init privado vacío () {
btn_select = (Botón) findViewById (R.id.btn_select);
btn_convert = (Botón) findViewById (R.id.btn_convert);
iv_image = (ImageView) findViewById (R.id.iv_image);
}
oyente privado privado () {
btn_select.setOnClickListener (esto);
btn_convert.setOnClickListener (esto);
}
@Anular
public void onClick (Ver vista) {
switch (view.getId ()) {
caso R.id.btn_select:
Intención intención = nueva intención (Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult (intento, GALLERY_PICTURE);
descanso;
caso R.id.btn_convert:
if (boolean_save) {
Intención intent1 = nueva intención (getApplicationContext (), PDFViewActivity.class);
startActivity (intent1);
} más {
crea PDF();
}
descanso;
}
}
private void createPdf () {
WindowManager wm = (WindowManager) getSystemService (Context.WINDOW_SERVICE);
Mostrar pantalla = wm.getDefaultDisplay ();
DisplayMetrics displaymetrics = new DisplayMetrics ();
this.getWindowManager (). getDefaultDisplay (). getMetrics (displaymetrics);
float hight = displaymetrics.heightPixels;
ancho flotante = displaymetrics.widthPixels;
int convertHighet = (int) hight, convertWidth = (int) width;
// Recursos mResources = getResources ();
// Mapa de bits mapa de bits = BitmapFactory.decodeResource (mResources, R.drawable.screenshot);
Documento PdfDocument = nuevo PdfDocument ();
PdfDocument.PageInfo pageInfo = nuevo PdfDocument.PageInfo.Builder (bitmap.getWidth (), bitmap.getHeight (), 1) .create ();
PdfDocument.Page página = document.startPage (pageInfo);
Lienzo lienzo = page.getCanvas ();
Paint paint = nueva pintura ();
paint.setColor (Color.parseColor (“# ffffff”));
canvas.drawPaint (pintura);
mapa de bits = Bitmap.createScaledBitmap (bitmap, bitmap.getWidth (), bitmap.getHeight (), verdadero);
paint.setColor (Color.BLUE);
canvas.drawBitmap (mapa de bits, 0, 0, nulo);
document.finishPage (página);
// escribe el contenido del documento
String targetPdf = “/sdcard/test.pdf”;
Archivo filePath = nuevo archivo (targetPdf);
tratar {
document.writeTo (nuevo FileOutputStream (filePath));
btn_convert.setText (“Verificar PDF”);
boolean_save = verdadero;
} catch (IOException e) {
e.printStackTrace ();
Toast.makeText (esto, “Algo está mal:” + e.toString (), Toast.LENGTH_LONG) .show ();
}
// cierra el documento
document.close ();
}
@Anular
void protegido en OnActivityResult (int requestCode, int resultCode, Intent data) {
super.onActivityResult (requestCode, resultCode, data);
if (requestCode == GALLERY_PICTURE && resultCode == RESULT_OK) {
if (resultCode == RESULT_OK) {
Uri selectedImage = data.getData ();
Cadena [] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver (). Query (
selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst ();
int columnIndex = cursor.getColumnIndex (filePathColumn [0]);
String filePath = cursor.getString (columnIndex);
cursor.close ();
mapa de bits = BitmapFactory.decodeFile (filePath);
iv_image.setImageBitmap (mapa de bits);
btn_convert.setClickable (true);
}
}
}
privado vacío fn_permission () {
if ((ContextCompat.checkSelfPermission (getApplicationContext (), Manifest.permission.READ_EXTERNAL_STORAGE)! = PackageManager.PERMISSION_GRANTED) ||
(ContextCompat.checkSelfPermission (getApplicationContext (), Manifest.permission.WRITE_EXTERNAL_STORAGE)! = PackageManager.PERMISSION_GRANTED)) {
if ((ActivityCompat.shouldShowRequestPermissionRationale (MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE))) {
} más {
ActivityCompat.requestPermissions (MainActivity.this, new String [] {android.Manifest.permission.READ_EXTERNAL_STORAGE},
SOLICITUD_PERMISIONES);
}
if ((ActivityCompat.shouldShowRequestPermissionRationale (MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE))) {
} más {
ActivityCompat.requestPermissions (MainActivity.this, new String [] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
SOLICITUD_PERMISIONES);
}
} más {
boolean_permission = true;
}
}
@Anular
public void onRequestPermissionsResult (int requestCode, String [] permissions, int [] grantResults) {
super.onRequestPermissionsResult (requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSIONS) {
if (grantResults.length> 0 && grantResults [0] == PackageManager.PERMISSION_GRANTED) {
boolean_permission = true;
} más {
Toast.makeText (getApplicationContext (), “Por favor permita el permiso”, Toast.LENGTH_LONG) .show ();
}
}
}
}