真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ListView中顯示圓形圖像

初學(xué)android,想要找些小程序練習(xí)一下。在使用手機(jī)QQ是發(fā)現(xiàn)聯(lián)系人中的圓形圖標(biāo),比較好看。所以琢磨著自己是實(shí)現(xiàn)一下,當(dāng)然咯只是界面的效果。

成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供惠陽(yáng)企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站建設(shè)、網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為惠陽(yáng)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。

首先想到的就是使用Android中的ListView來(lái)顯示每一項(xiàng)的聯(lián)系人。而ListView在一個(gè)Activity中顯示出來(lái)有2中方式,一個(gè)是在XML文件中聲明一個(gè)ListView的標(biāo)簽,通過(guò)findViewById()來(lái)找到,然后通過(guò)適配器Adapter來(lái)加載。另一種方式,顯示內(nèi)容的是從Activity派生的ListActivity類(lèi),然后在使用適配器來(lái)加載內(nèi)容。(此處只是加載顯示幾項(xiàng)的內(nèi)容,如果項(xiàng)目條數(shù)太多,則要是對(duì)ListView中顯示Item進(jìn)行優(yōu)化)

理解完ListView每個(gè)Item項(xiàng)的加載,下面解決的是怎么將所給的圖片轉(zhuǎn)化為圓形在界面上顯示。解決方式是從ImageView類(lèi)中派生一個(gè)CustomImageView類(lèi),并且重寫(xiě)其中的onDraw()函數(shù)來(lái)達(dá)到顯示圓形的目的。因?yàn)楫?dāng)我們CustomImageView類(lèi)從ImageView類(lèi)派生而來(lái),所以在XML中可以使用這個(gè)標(biāo)簽來(lái)定義顯示內(nèi)容。但是在使用時(shí)注意:要將這個(gè)CustomImageView類(lèi)的路徑寫(xiě)進(jìn)去。如:

而我們?cè)趏nDraw()函數(shù)中需要做的是:

1、獲取父類(lèi)中的到的圖片信息Bitmap.

2、對(duì)圖片大小進(jìn)行處理,變成正方形。(可不做)

3、使用方法疊加,只顯示出中間圓形部分。

    Drawable drawable = getDrawable();
    if (null != drawable) {
        mSrc = ((BitmapDrawable) drawable).getBitmap();
    }
    int min = Math.min(mWidth, mHeight);
    
    //長(zhǎng)度如果不一致,按小的值進(jìn)行壓縮 
    mSrc = Bitmap.createScaledBitmap(mSrc, min, min, false);
    canvas.drawBitmap(createCircleImage(mSrc, min), 0, 0, null);

ListView在ListActivity類(lèi)中的實(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> Items = new ArrayList>();
        // 把該顯示的內(nèi)容放到list中
        for (int i = 0; i < aa.length; i++) {
            Map item = new HashMap();
                item.put("p_w_picpath", draw[i]);
                item.put("textview1", aa[i]);
                Items.add(item);
        }
        // 構(gòu)建適配器Adapter,將數(shù)據(jù)與顯示數(shù)據(jù)的布局頁(yè)面綁定
        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 });
        // 通過(guò)setAdapter()方法把適配器設(shè)置給ListView
        setListAdapter(simpleAdapter);
}

運(yùn)行效果圖片:

ListView中顯示圓形圖像

Demo鏈接:http://down.51cto.com/data/1979117


本文名稱(chēng):ListView中顯示圓形圖像
文章來(lái)源:http://weahome.cn/article/jepsdi.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部