初學(xué)android,想要找些小程序練習(xí)一下。在使用手機(jī)QQ是發(fā)現(xiàn)聯(lián)系人中的圓形圖標(biāo),比較好看。所以琢磨著自己是實(shí)現(xiàn)一下,當(dāng)然咯只是界面的效果。
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、鋼城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。首先想到的就是使用Android中的ListView來顯示每一項(xiàng)的聯(lián)系人。而ListView在一個(gè)Activity中顯示出來有2中方式,一個(gè)是在XML文件中聲明一個(gè)ListView的標(biāo)簽,通過findViewById()來找到,然后通過適配器Adapter來加載。另一種方式,顯示內(nèi)容的是從Activity派生的ListActivity類,然后在使用適配器來加載內(nèi)容。(此處只是加載顯示幾項(xiàng)的內(nèi)容,如果項(xiàng)目條數(shù)太多,則要是對(duì)ListView中顯示Item進(jìn)行優(yōu)化)
理解完ListView每個(gè)Item項(xiàng)的加載,下面解決的是怎么將所給的圖片轉(zhuǎn)化為圓形在界面上顯示。解決方式是從ImageView類中派生一個(gè)CustomImageView類,并且重寫其中的onDraw()函數(shù)來達(dá)到顯示圓形的目的。因?yàn)楫?dāng)我們CustomImageView類從ImageView類派生而來,所以在XML中可以使用
而我們?cè)趏nDraw()函數(shù)中需要做的是:
1、獲取父類中的到的圖片信息Bitmap.
2、對(duì)圖片大小進(jìn)行處理,變成正方形。(可不做)
3、使用方法疊加,只顯示出中間圓形部分。
Drawable drawable = getDrawable(); if (null != drawable) { mSrc = ((BitmapDrawable) drawable).getBitmap(); } int min = Math.min(mWidth, mHeight); //長度如果不一致,按小的值進(jìn)行壓縮 mSrc = Bitmap.createScaledBitmap(mSrc, min, min, false); canvas.drawBitmap(createCircleImage(mSrc, min), 0, 0, null);
ListView在ListActivity類中的實(shí)現(xiàn)如下:
public class MainActivity extends ListActivity { private static String[] aa = new String[] { "hello world", "this is my listview", "邵洋江加油", "你會(huì)成功的", "you will success" }; private static int[] draw = new int[] { R.drawable.chutian, R.drawable.icon, R.drawable.chutian, R.drawable.chutian,R.drawable.test }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 每個(gè)list里面放的都是MAP,map里面放的是鍵值對(duì),這里指圖片和文字 List
運(yùn)行效果圖片:
Demo鏈接:http://down.51cto.com/data/1979117
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。