English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este artículo describe una instancia de programación Android que muestra cómo mostrar solo una parte de una imagen. Compartimos esto con todos ustedes para que lo puedan referir, como se detalla a continuación:
Cargar una imagen y mostrarla en una aplicación Android es una tarea muy sencilla, ¿pero cómo se puede mostrar solo una parte de una imagen? Una manera es editar la imagen, guardar la parte que se desea mostrar en una imagen separada y luego cargarla y mostrarla en el programa. Sin embargo, esto aumentará la cantidad de imágenes del programa. Es muy simple cortar una parte de una imagen completa con un programa.
El programa implementado a continuación carga una imagen, luego la transforma para que ocupe toda la pantalla del teléfono y luego muestra la parte central de la imagen en el centro de la pantalla.100*10La parte 0.
ShowPoritionPictureActivity código:
package com.iwin.zzs; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.WindowManager; public class ShowPoritionPictureActivity extends Activity { /** Se llama cuando la actividad se crea por primera vez. */ Bitmap picRes; Bitmap showPic; //Obtener la anchura y altura de la imagen original int picWidth; int picHeight; private PoritionView poritonView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // No mostrar la barra de estado this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); // Obtener la longitud y anchura de la pantalla int screenWidth = dm.widthPixels; //Resolución horizontal int screenHeight = dm.heightPixels; //Resolución vertical picRes = BitmapFactory.decodeResource(this.getResources(), R.drawable.girl); // Obtener la longitud y anchura de la imagen picWidth = picRes.getWidth(); picHeight = picRes.getHeight(); // Calcular la tasa de escala, el nuevo tamaño dividido por el tamaño original float scaleWidth = ((float) screenWidth ) / picWidth; float scaleHeight = ((float) screenHeight ) / picHeight; // Crear el objeto matrix utilizado para operar con la imagen Matrix matrix = new Matrix(); // acción de escalado de imagen matrix.postScale(scaleWidth, scaleHeight); // La nueva imagen obtenida es la imagen original transformada y rellena para llenar toda la pantalla. Bitmap picNewRes = Bitmap.createBitmap(picRes, 0, 0,picWidth, picHeight, matrix, true); // bitmap = Bitmap.createBitmap(400, 480, Bitmap.Config.ARGB_8888; // canvas=new Canvas(); // canvas.setBitmap(bitmap); showPic = Bitmap.createBitmap(picNewRes, screenWidth/2-50, screenHeight/2-50, 100, 100); poritonView = new PoritionView(this); poritonView.setBitmapShow(showPic, screenWidth/2-50, screenHeight/2-50); setContentView(poritonView); }
Código nuevo de la clase PoritionView:
package com.iwin.zzs; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.view.View; public class PoritionView extends View { private Bitmap showPic = null; private int startX = 0; private int startY = 0; public PoritionView(Context context) { super(context); // TODO Auto-plantilla de constructor generado } @Override protected void onDraw(Canvas canvas) { // TODO Auto-método de plantilla generado super.onDraw(canvas); canvas.drawBitmap(showPic, startX, startY, null); } public void setBitmapShow(Bitmap b, int x, int y) { showPic = b; startX = x; startY = y; } }
En el proyecto res/Añadir la imagen gir.png dentro de drawable, al ejecutar el programa se mostrará solo el centro de la imagen.100*10la parte de 0 de las imágenes.
Los lectores interesados en más contenido relacionado con Android pueden consultar la sección especial de este sitio: "Resumen de técnicas de procesamiento de gráficos e imágenes en Android", "Tutorial de desarrollo de Android para principiantes y avanzados", "Resumen de técnicas de depuración y resolución de problemas comunes en Android", "Resumen de técnicas de operaciones multimedia en Android (audio, video, grabación, etc.)", "Resumen de uso de componentes básicos en Android", "Resumen de técnicas de View en Android", "Resumen de técnicas de layout en Android" y "Resumen de uso de controles en Android".
Espero que lo descrito en este artículo pueda ayudar a todos en el diseño de programas Android.
Declaración: El contenido de este artículo se ha obtenido de Internet, es propiedad del autor original, el contenido ha sido contribuido y subido por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a notice#w.com para informar.3Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a notice#w.com (reemplace # por @) para denunciar y proporcionar evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.