當前位置:首頁 » 安卓系統 » android圖片方法

android圖片方法

發布時間: 2023-01-12 19:52:58

A. Android設置圖片圓角的方法

Android中經常會遇到對圖片進行二次處理,例如加圓角,或者顯示圓形圖片

通過第三方框架Glide實現圖片顯示有圓角,有三種寫法如下:

1.1、第一種實現:

1.2、第二種實現:

1.3、第三種實現:

自定義ImageView:

對圖片進行處理,此方法還可以加邊框

實現圓形和邊框:

以上就是本文的全部內容,希望對大家的學習有所幫助!

B. android 畫圖片的幾種方法

方法:

1.使用Xfermode 兩圖相交方式

2.通過裁剪畫布區域實現指定形狀的圖形

3.使用BitmapShader

C. android圖像繪制——畫布保存為圖片

解釋:

1、首先創建一個Bitmap圖片,並指定大小;

2、在該圖片上創建一個新的畫布Canvas,然後在畫布上繪制,並保存即可;

3、需要保存的目錄File,注意如果寫的目錄如「/sdcard/akai/」如果不存在的話,要先創建(file.mkdirs()),否則FileOutputStream會報錯No found;

4、需要添加許可權:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

什麼是畫布呢 其實通過字面意思的理解就是用來繪畫的地方,那麼android里的畫布是神馬樣子的呢?

在自定義畫布中常用到下面3個類

Canvas

這些繪圖方法中的每一個都需要指定一個Paint對象來渲染它

Paint

Paint也稱為"刷子",Paint可以指定如何將基本圖形繪制到點陣圖上。

Paint類相當於一個筆刷和調色板。它可以選擇如何使用上面描述的draw方法來渲染繪 制在畫布上的基本圖形。通過修改Paint對象,可以在繪圖的時候控制顏色、樣式、字體和特殊效果。最簡單地,setColor可以讓你選擇一個Paint的顏色,而Paint對象的樣式(使用setStyle控制)則可以決定是繪制繪圖對象的輪廓(STROKE),還是只填充每一部 分(FILL),或者是兩者都做(STROKE_AND_FILL)除了這些簡單的控制之外,Paint類還支持透明度,另外,它也可以通過使用各種各樣的陰影、過濾器和效果進行修改,從而提供由更豐富的、復雜的畫筆和顏料組成的調色板。

從繼承View類(或其子類)開始,並定義onDraw()回調方法。系統會調用該方法來完 成View對象自己的繪制請求。這也是通過Canvas對象來執行所有的圖形繪制調用的地方,這個Canvas對象是由onDraw()回調方法傳入的。

Android框架只在必要的時候才會調用onDraw()方法,每次請求應用程序准備完成圖形 繪制任務時,必須通過調用invalidate()方法讓該View對象失效。這表明可以在該View 對象上進行圖形繪制處理了,然後Android系統會調用該View對象的onDraw()方(盡 管不保證該回調方法會立即被調用)。

在定製的View組件的onDraw()方法內部,使用給定的Canvas對象來完成所有的圖形繪制處理(如Canvas.draw…()方法或把該Canvas對象作為參數傳遞給其他類的draw() 方法)。一旦onDraw()方法被執行完成,Android框架就會使用這個Canvas對象來繪制一個有系統處理的Bitmap對象。

下面是Paint一些常用方法:

Bitmap

Bitmap繪圖的表面也稱點陣圖(這里詳細說哈點陣圖的功能)。

從資源中獲取點陣圖:

通過Resource的函數:InputStream openRawResource(int id)獲取得到資源文件的數據流後,可以通過2種方式獲得bitmap

使用BitmapDrawable :

使用BitmapDrawable(InputStream is)構造一個BitmapDrawable;

使用BitmapDrawable類的getBitmap()獲取得到點陣圖;

使用BitmapFactory使用BitmapFactory類decodeStream(InputStream is)解碼位 圖資源,獲取點陣圖BitmapFactory的所有函數都是static,這個輔助類可以通過資 源ID、路徑、文件、數據流等方式來獲取點陣圖。

獲取點陣圖的信息

一般獲取點陣圖信息包括:點陣圖大小、透明度、顏色格式等等,這些信息呢可以通過 三-一方法獲取得到Bitmap就迎刃而解了,Android SDK中對Bitmap有詳細說明,大家可以去詳細了解哈。

顯示點陣圖

顯示點陣圖需要使用核心類Canvas,可以直接通過Canvas類的drawBirmap()顯示點陣圖,或者藉助於BitmapDrawable來將Bitmap繪制到Canvas,下面的實例中會詳細列舉到

點陣圖的縮放

點陣圖的縮放,在Android SDK中提供了2種方法:

1:將一個點陣圖按照需求重畫一遍,畫後的點陣圖就是我們需要的了,與點陣圖的顯示幾乎 一樣:
drawBitmap(Bitmap bitmap, Rect src, Rectdst, Paint paint)

2:在原有點陣圖的基礎上,縮放原點陣圖,創建一個新的點陣圖:
createBitmap(Bitmap source, int x, int y,int width, int height, Matrix m, boolean filter)

點陣圖旋轉

點陣圖的旋轉,離不開Matrix。Android SDK提供了Matrix類,可以通過各種介面來設置 矩陣

android 處理圖片工具

截取視頻幀並轉化為Bitmap

D. android圖片顯示的幾種辦法

方法1:TextView顯示

java"><TextView
android:id="@+id/textview_01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:text="hello_world"/>

第二種方式:顯示項目中的圖片

mTextView02=(TextView)findViewById(R.id.textview_02);
//把圖片生成的ID加入img標簽中<imgsrc='123'>
StringhtmlFor02="項目圖片測試:"+"<imgsrc='"+R.drawable.ic_launcher+"'>"+"<imgsrc='"
+R.drawable.apple+"'>";
mTextView02.setText(Html.fromHtml(htmlFor02,newHtml.ImageGetter(){
@Override
publicDrawablegetDrawable(Stringsource){
Log.d(TAG,"項目圖片測試_source:"+source);
intid=Integer.parseInt(source);
Drawabledrawable=getResources().getDrawable(id,null);
drawable.setBounds(0,0,drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
returndrawable;
}
},null));

E. Android 圖片載入(一)高效載入Bitmap 基礎篇

由於Bitmap的特殊性以及Android對單個應用所規定的最大內存限制,我們在同時載入大量Bitmap時很容易發生內存溢出,即我們通常所說的OutOfMemoryError(OOM),因此高效載入Bitmap就成為了每個Android開發者的必備技能。

在學習如何高效地載入Bitmap之前,首先介紹一下如何載入一個Bitmap。我們都知道,Bitmap在Android中通常指的是一張圖片,那麼如何將JPG、PNG等格式的圖片轉換成Bitmap對象呢?BitmapFactory類給我們提供了一些方法:

接下來開始介紹如何高效地載入Bitmap,其實核心思想很簡單: 就是採用BitmapFactory.Options參數來調整圖片尺寸來適配控制項的大小。

假如我們顯示圖片的控制項ImageView寬高為100×100像素,而圖片的尺寸為1024×1024像素,這個時候如果將整個圖片載入進來並顯示到控制項上,自然是很佔用內存資源的。這個時候可以通過BitmapFactory.Options按一定的采樣率載入縮小後的圖片,再將縮小後的圖片顯示到ImageView中,這樣就能減小內存佔用從而在一定程度上避免OOM的發生。

通過BitmapFactory.Options來縮放圖片,主要是使用它的inSampleSize參數,也就是前面提到的采樣率。當采樣率inSampleSize為1時,采樣後的圖片大小為原圖大小;當采樣率inSampleSize>1,比如為2時,采樣後的圖片寬高都為原圖的1/2,即像素降為原圖的1/4,佔用的內存大小也就是原圖的1/4;比較特殊的是,當采樣率inSampleSize<1時,系統會自動將該值當做1來處理。 因此可以得出一個結論:采樣率inSampleSize必須是大於1的整數圖片才會有縮小的效果,並且采樣率同時作用於寬高,也就是說采樣後的圖片會縮小到原圖的1/(inSampleSize^2)。比如inSampleSize=4,那麼縮放比例為1/16。

我們現在知道了,通過采樣率可以提高圖片的載入效率,那麼如何才能計算出最合適的采樣率?我們可以按照如下流程:

接下來以decodeFile方法為例實現圖片的縮放,其他三個方法處理方式類似。

下一篇: Android 圖片載入(二)圖片載入框架Glide 入門篇

《Android開發藝術探索》

F. 安卓照片怎麼導入蘋果手機

將Android手機照片導入Apple手機的方法如下:

1、在兩部手機上都安裝網路Netdisk應用程序,打開Android手機以進入網路Netdisk,然後打開開關以進行自動圖片備份。如圖所示:

G. Android如何獲取網路圖片

android中獲取網路圖片是一件耗時的操作,如果直接獲取有可能會出現應用程序無響應(ANR:Application Not Responding)對話框的情況。對於這種情況,一般的方法就是耗時操作用線程來實現。下面列三種獲取url圖片的方法:


  1. 直接獲取:(容易:ANR,不建議)

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
Drawabledrawable=loadImageFromNetwork(IMAGE_URL);
mImageView.setImageDrawable(drawable);

2. 後台線程獲取url圖片:

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
newThread(newRunnable(){
Drawabledrawable=loadImageFromNetwork(IMAGE_URL);
@Override
publicvoidrun(){

//post()特別關鍵,就是到UI主線程去更新圖片
mImageView.post(newRunnable(){
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
mImageView.setImageDrawable(drawable);
}});
}

}).start();

3.AsyncTask獲取url圖片

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);
newDownloadImageTask().execute(IMAGE_URL);
<String,Void,Drawable>
{

(String...urls){
returnloadImageFromNetwork(urls[0]);
}
protectedvoidonPostExecute(Drawableresult){
mImageView.setImageDrawable(result);
}
}
熱點內容
魔獸地圖破解加密 發布:2025-07-03 22:42:48 瀏覽:250
java中的默認值 發布:2025-07-03 22:11:34 瀏覽:752
岳姓三才配置怎麼分 發布:2025-07-03 22:10:26 瀏覽:670
演算法需求分析 發布:2025-07-03 22:00:45 瀏覽:148
單片機的交叉編譯 發布:2025-07-03 22:00:45 瀏覽:864
滑鼠存儲 發布:2025-07-03 21:43:54 瀏覽:104
unity3d腳本打包 發布:2025-07-03 21:36:05 瀏覽:865
伺服器獨享寬頻怎麼樣 發布:2025-07-03 21:35:58 瀏覽:840
重慶哪裡有安卓手機專賣店 發布:2025-07-03 21:21:42 瀏覽:381
上傳ftp亂碼linux 發布:2025-07-03 21:20:26 瀏覽:336