Android編程實現(xiàn)只顯示圖片一部分的方法
本文實例講述了Android編程實現(xiàn)只顯示圖片一部分的方法。分享給大家供大家參考,具體如下:
在Android應(yīng)用程序中加載一張圖片,然后把它顯示出來這是一件非常容易的事情,那怎么才能顯示一張圖片的一小部分呢,一種做法是把圖片ps一下,要顯示的那部分單獨存成一張圖片,然后程序中加載它,并把它顯示出來。但這樣會增加程序的圖片量。對一張完整的圖,用程序去切割你想要的那部分也是很簡單的。
下面實現(xiàn)的一個程序,是加載了一張圖片,然后經(jīng)過變換讓圖片填充到手機(jī)的整個屏幕,然后在屏幕的中間顯示圖片中間的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 { /** Called when the activity is first created. */ 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); // 不顯示狀態(tài)欄 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; // 創(chuàng)建操作圖片用的matrix對象 Matrix matrix = new Matrix(); // 縮放圖片動作 matrix.postScale(scaleWidth, scaleHeight); // 新得到的圖片是原圖片經(jīng)過變換填充到整個屏幕的圖片 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 Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); canvas.drawBitmap(showPic, startX, startY, null); } public void setBitmapShow(Bitmap b, int x, int y) { showPic = b; startX = x; startY = y; } }
在工程res/drawable里面添加圖片gir.png,運行程序的效果是只顯示圖片的中間100*100的那部分圖片。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android編程顯示網(wǎng)絡(luò)上的圖片實例詳解
- android 顯示gif圖片實例詳解
- Android中TextView顯示插入的圖片實現(xiàn)方法
- Android實現(xiàn)TextView顯示HTML加圖片的方法
- Android TextView顯示Html類解析的網(wǎng)頁和圖片及自定義標(biāo)簽用法示例
- Android應(yīng)用中使用ContentProvider掃描本地圖片并顯示
- 基于Android實現(xiàn)保存圖片到本地并可以在相冊中顯示出來
- Android實現(xiàn)從網(wǎng)絡(luò)獲取圖片顯示并保存到SD卡的方法
- Android讀取assets目錄下的所有圖片并顯示的方法
- Android開發(fā)ImageView圖片無法顯示解決過程
- Android圖片處理:識別圖像方向并顯示實例教程
- Android的ImageButton當(dāng)顯示Drawable圖片時就不顯示文字
相關(guān)文章
Android實現(xiàn)編程修改手機(jī)靜態(tài)IP的方法
這篇文章主要介紹了Android實現(xiàn)編程修改手機(jī)靜態(tài)IP的方法,涉及Android編程實現(xiàn)對系統(tǒng)底層信息修改的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Android?hid發(fā)送apdu格式數(shù)據(jù)示例詳解
這篇文章主要介紹了Android?hid發(fā)送apdu格式數(shù)據(jù),在?Android?中,如果你想通過?HID(Human?Interface?Device)發(fā)送?APDU?格式的數(shù)據(jù),通常會涉及?USB?HID?設(shè)備或藍(lán)牙?HID?設(shè)備,本文給大家講解的非常詳細(xì),需要的朋友可以參考下2023-08-08Android提高之MediaPlayer播放網(wǎng)絡(luò)視頻的實現(xiàn)方法
這篇文章主要介紹了Android的MediaPlayer播放網(wǎng)絡(luò)視頻的實現(xiàn)方法,是一個非常實用的功能,需要的朋友可以參考下2014-08-08Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解
今天小編就為大家分享一篇Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08okhttp3.4.1+retrofit2.1.0實現(xiàn)離線緩存的示例
本篇文章主要介紹了okhttp3.4.1+retrofit2.1.0實現(xiàn)離線緩存的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12ActivityManagerService廣播注冊與發(fā)送示例解析
這篇文章主要為大家介紹了ActivityManagerService廣播注冊與發(fā)送示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03詳解Retrofit 動態(tài)參數(shù)(非固定參數(shù)、非必須參數(shù))(Get、Post請求)
這篇文章主要介紹了詳解Retrofit 動態(tài)參數(shù)(非固定參數(shù)、非必須參數(shù))(Get、Post請求),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04