English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье рассказывается о методе программирования Android, который позволяет отображать только часть изображения. Предлагается к рассмотрению и использованию, подробности см. ниже:
Загрузка изображения и его отображение в Android-приложении - это очень простая задача. Как показать только часть изображения? Один из способов - обработать изображение в Photoshop, сохранить нужную часть как отдельное изображение, а затем загрузить и отобразить его в программе. Но это увеличит количество изображений в программе. Разрезание целого изображения на часть, которую вы хотите, также очень просто.
Реализованная ниже программа загружает изображение, преобразует его, чтобы оно занимало весь экран телефона, и затем показывает часть 100*100 в центре экрана.
Код ShowPoritionPictureActivity:
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 { /** При вызове первого создания активности. */ Bitmap picRes; Bitmap showPic; // получение исходных размеров изображения int picWidth; int picHeight; private PoritionView poritonView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // не отображать статусную строку this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); // получение размеров экрана int screenWidth = dm.widthPixels; // горизонтальное разрешение int screenHeight = dm.heightPixels; // вертикальное разрешение picRes = BitmapFactory.decodeResource(this.getResources(), R.drawable.girl); // получение размеров изображения picWidth = picRes.getWidth(); picHeight = picRes.getHeight(); // расчет коэффициента масштабирования, новый размер делен на исходный размер float scaleWidth = ((float) screenWidth) / picWidth; float scaleHeight = ((float) screenHeight) / picHeight; // создание объекта matrix для работы с изображением Matrix matrix = new Matrix(); // уменьшение изображения matrix.postScale(scaleWidth, scaleHeight); // Полученное новое изображение - это изображение, преобразованное и заполненное до всего экрана 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); {}
Новый код класса 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 Автоматически сгенерированный конструктор шаблона {} @Override protected void onDraw(Canvas canvas) { // TODO Автоматически сгенерированный метод шаблона super.onDraw(canvas); canvas.drawBitmap(showPic, startX, startY, null); {} public void setBitmapShow(Bitmap b, int x, int y) { showPic = b; startX = x; startY = y; {} {}
Добавьте изображение gir.png в папку res/drawable проекта, и при запуске программы будет отображаться только средняя часть изображения 100x100.
Читатели, которые интересуются дополнительной информацией по теме Android, могут ознакомиться с нашими статьями: "Обзор навыков обработки графики и изображений в Android", "Введение и продвинутый tuition по разработке Android", "Обзор методов отладки и решения проблем в Android", "Обзор навыков работы с мультимедиа в Android (аудио, видео, запись и т.д.)", "Обзор использования основных компонентов в Android", "Обзор навыков работы с View в Android", "Обзор навыков работы с layout в Android" и "Обзор использования контроллеров в Android".
Надеюсь, что это руководство поможет вам в разработке Android-приложений.
Заявление: контент статьи был получен из Интернета, авторские права принадлежат соответствующему автору, материал был предоставлен пользователями Интернета в добровольном порядке, сайт не имеет права собственности, не underwent редактирование, и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите подозрительный контент, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для отчета, и предоставьте соответствующие доказательства. При подтверждении, сайт немедленно удаляет подозрительный контент,涉嫌侵权。