English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este artigo descreve um exemplo de como implementar no Android para exibir apenas uma parte de uma imagem. Compartilho com vocês para referência, conforme detalhado a seguir:
Carregar uma imagem e exibi-la em um aplicativo Android é uma tarefa muito fácil, então como exibir apenas uma parte de uma imagem? Uma abordagem é fazer um 'ps' na imagem, salvar a parte que você deseja exibir como uma imagem separada e, em seguida, carregá-la no programa para exibi-la. No entanto, isso aumentará o número de imagens no programa. É também muito simples cortar a parte que você deseja de uma imagem completa com um programa.
Abaixo está implementado um programa que carrega uma imagem, realiza transformações para que a imagem preencha toda a tela do telefone e, em seguida, exibe o centro da imagem no meio da tela.100*100 parte.
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 { /** Chamado quando a atividade é criada pela primeira vez. */ Bitmap picRes; Bitmap showPic; //Obter as dimensões originais da imagem int picWidth; int picHeight; private PoritionView poritonView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Não exibir a barra de estado this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); // Obter as dimensões da tela int screenWidth = dm.widthPixels; //Resolução horizontal int screenHeight = dm.heightPixels; //Resolução vertical picRes = BitmapFactory.decodeResource(this.getResources(), R.drawable.girl); // Obter as dimensões da imagem picWidth = picRes.getWidth(); picHeight = picRes.getHeight(); // Calcular a taxa de ampliação, o novo tamanho dividido pelo tamanho original float scaleWidth = ((float) screenWidth ) / picWidth; float scaleHeight = ((float) screenHeight ) / picHeight; // criar objeto matrix para operar na imagem Matrix matrix = new Matrix(); // ação de escalonamento da imagem matrix.postScale(scaleWidth, scaleHeight); // A nova imagem é a imagem original transformada e preenchida para ocupar toda a tela. 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); }
Novo código da classe 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-esboço de construtor gerado } @Override protected void onDraw(Canvas canvas) { // TODO Auto-metodo de esboço gerado super.onDraw(canvas); canvas.drawBitmap(showPic, startX, startY, null); } public void setBitmapShow(Bitmap b, int x, int y) { showPic = b; startX = x; startY = y; } }
no projeto res/Adicione a imagem gir.png dentro de drawable, ao executar o programa, será exibida apenas a parte do meio da imagem.100*10da parte 0 das imagens.
Leitores interessados em mais conteúdo sobre Android podem consultar a seção especial deste site: 'Resumo de Técnicas de Processamento de Gráficos e Imagens no Android', 'Tutorial de Entrada e Avançado de Desenvolvimento de Android', 'Resumo de Técnicas de Depuração e Solução de Problemas Comuns no Android', 'Resumo de Técnicas de Manipulação de Multimídia no Android (áudio, vídeo, gravação, etc.)', 'Resumo de Uso dos Componentes Básicos no Android', 'Resumo de Técnicas de View no Android', 'Resumo de Técnicas de Layout no Android' e 'Resumo de Uso dos Controles no Android'.
Espero que o conteúdo deste artigo ajude a todos na programação de Android.
Declaração: o conteúdo deste artigo é extraído da Internet, pertence ao respectivo proprietário, foi contribuído e carregado voluntariamente pelos usuários da Internet, o site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de infringir direitos autorais, seja bem-vindo a enviar e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar, forneça provas relacionadas e, uma vez confirmado, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais.)