初學(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在一個Activity中顯示出來有2中方式,一個是在XML文件中聲明一個ListView的標(biāo)簽,通過findViewById()來找到,然后通過適配器Adapter來加載。另一種方式,顯示內(nèi)容的是從Activity派生的ListActivity類,然后在使用適配器來加載內(nèi)容。(此處只是加載顯示幾項(xiàng)的內(nèi)容,如果項(xiàng)目條數(shù)太多,則要是對ListView中顯示Item進(jìn)行優(yōu)化)
理解完ListView每個Item項(xiàng)的加載,下面解決的是怎么將所給的圖片轉(zhuǎn)化為圓形在界面上顯示。解決方式是從ImageView類中派生一個CustomImageView類,并且重寫其中的onDraw()函數(shù)來達(dá)到顯示圓形的目的。因?yàn)楫?dāng)我們CustomImageView類從ImageView類派生而來,所以在XML中可以使用<CustomImageView/>這個標(biāo)簽來定義顯示內(nèi)容。但是在使用時注意:要將這個CustomImageView類的路徑寫進(jìn)去。如:
<com.android.listviewdemo.CustomImageView android:id="@+id/p_w_picpath" android:layout_width="60dp" android:layout_height="60dp" android:paddingLeft="10dp" android:src="@drawable/test" />
而我們在onDraw()函數(shù)中需要做的是:
1、獲取父類中的到的圖片信息Bitmap.
2、對圖片大小進(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", "邵洋江加油", "你會成功的", "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); // 每個list里面放的都是MAP,map里面放的是鍵值對,這里指圖片和文字 List<Map<String, Object>> Items = new ArrayList<Map<String, Object>>(); // 把該顯示的內(nèi)容放到list中 for (int i = 0; i < aa.length; i++) { Map<String, Object> item = new HashMap<String, Object>(); item.put("p_w_picpath", draw[i]); item.put("textview1", aa[i]); Items.add(item); } // 構(gòu)建適配器Adapter,將數(shù)據(jù)與顯示數(shù)據(jù)的布局頁面綁定 SimpleAdapter simpleAdapter = new SimpleAdapter(this, Items, R.layout.activity_main, new String[] { "textview1", "p_w_picpath" }, new int[] { R.id.textview1, R.id.p_w_picpath }); // 通過setAdapter()方法把適配器設(shè)置給ListView setListAdapter(simpleAdapter); }
運(yùn)行效果圖片:
Demo鏈接:http://down.51cto.com/data/1979117
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:ListView中顯示圓形圖像-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://vcdvsql.cn/article16/cscegg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、企業(yè)網(wǎng)站制作、外貿(mào)建站、服務(wù)器托管、面包屑導(dǎo)航、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容