日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android實現圓角ListView效果

瀏覽:162日期:2022-09-22 08:30:27

在項目開發中我們可能會碰到圓角ListView效果,因為直角的看起來確實不那么雅觀,可能大家會想到用圖片實現,試想上中下要分別做三張圖片,這樣做太繁瑣,這時使用shape來實現不失為一種更好的實現方式。

先看一下Android 中Shape的使用方法:

solid:實心,就是填充的意思

android:color指定填充的顏色

gradient:漸變

android:startColor和android:endColor分別為起始和結束顏色,ndroid:angle是漸變角度,必須為45的整數倍。另外漸變默認的模式為android:type='linear',即線性漸變,可以指定漸變為徑向漸變,android:type='radial',徑向漸變需要指定半徑android:gradientRadius='50'。

stroke:描邊

android: 描邊的寬度,android:color 描邊的顏色。我們還可以把描邊弄成虛線的形式,設置方式為:android:dashWidth='5dp'android:dashGap='3dp'其中android:dashWidth表示’-’這樣一個橫線的寬度,android:dashGap表示之間隔開的距離。

corners:圓角

android:radius為角的弧度,值越大角越圓。

當然,這里并不是說這種圓角的列表一段是ListView來實現的,可能是由多個LinearLayout/RelativeLayout疊起來的。這個就看你怎么取舍了;如果列表項固定不怎么變化可以采取后者來實現比較好,如果需要動態變化那么使用ListView來實現更優。

下面來定義一下ListView只有一項時的背景(上下兩個角都是圓角) app_list_corner_round.xml

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android' android:shape='rectangle' > <!-- 漸變 --> <gradient android:angle='270' android:endColor='@color/white' android:startColor='@color/white' /> <!-- 圓角 --> <corners android:bottomLeftRadius='4dip' android:bottomRightRadius='4dip' android:topLeftRadius='4dip' android:topRightRadius='4dip' /> </shape>

ListView第一項的背景(上面是圓角,下面是直角) app_list_corner_round_top.xml

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android' android:shape='rectangle' > <gradient android:angle='270' android:endColor='@color/white' android:startColor='@color/white' /> <corners android:topLeftRadius='@dimen/app_list_radius' android:topRightRadius='@dimen/app_list_radius' /> </shape>

ListView最后一項的背景(上面是直角,下面是圓角) app_list_corner_round_bottom.xml

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android' android:shape='rectangle' > <gradient android:angle='270' android:endColor='@color/white' android:startColor='@color/white' /> <corners android:bottomLeftRadius='@dimen/app_list_radius' android:bottomRightRadius='@dimen/app_list_radius' /> </shape>

ListView中間項的背景(上下都是直角) app_list_corner_round_center.xml

<?xml version='1.0' encoding='utf-8'?><shape xmlns:android='http://schemas.android.com/apk/res/android' android:shape='rectangle' > <gradient android:angle='270' android:endColor='@color/white' android:startColor='@color/white' /> </shape>

接下來先看看Adapter的實現

package com.example.roundcorner.adapter; import java.util.List; import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView; import com.example.roundcorner.R;import com.example.roundcorner.entity.ListBean; public class ListAdapter extends BaseAdapter { private List<ListBean> mList; private Context mContext; public ListAdapter(Context mContext,List<ListBean> mList) { this.mList = mList; this.mContext = mContext.getApplicationContext(); } @Override public int getCount() { return this.mList.size(); } @Override public Object getItem(int position) { return this.mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { // TODO Auto-generated method stub return super.getItemViewType(position); } @Override public int getViewTypeCount() { // TODO Auto-generated method stub return super.getViewTypeCount(); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(this.mContext).inflate( R.layout.listview_item, null, false); holder.textView = (TextView) convertView .findViewById(R.id.listview_item_textview); holder.imageView = (ImageView) convertView .findViewById(R.id.listview_item_imageview); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } if(position==0){ if(position == getCount()-1){ //只有一項 convertView.setBackgroundResource(R.drawable.app_list_corner_round); }else{ //第一項 convertView.setBackgroundResource(R.drawable.app_list_corner_round_top); } }else if(position == getCount()-1){ convertView.setBackgroundResource(R.drawable.app_list_corner_round_bottom); }else{ convertView.setBackgroundResource(R.drawable.app_list_corner_round_center); } ListBean lb = mList.get(position); holder.textView.setText(lb.getKey()); return convertView; } static class ViewHolder { TextView textView; ImageView imageView; }}

listview_item.xml

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='wrap_content'> <TextView android: android:layout_width='wrap_content' android:layout_height='48dp' android:paddingLeft='10dp' android:gravity='center_vertical' android:layout_centerVertical='true' android:text='A-H' android:textColor='@color/black' android:textSize='20sp' /> <ImageView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:src='http://www.b3g6.com/bcjs/@drawable/arrow' android:layout_alignParentRight='true' android:layout_centerVertical='true' /> </RelativeLayout>

最后看看主界面Activity的實現

package com.example.roundcorner; import java.util.ArrayList;import java.util.List; import android.app.Activity;import android.os.Bundle;import android.widget.ListView; import com.example.roundcorner.adapter.ListAdapter;import com.example.roundcorner.entity.ListBean; public class MainActivity extends Activity { private List<ListBean> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); findView(); } private void findView() { ListView mListView = (ListView) findViewById(R.id.mListView); ListAdapter mAdapter = new ListAdapter(this,data); mListView.setAdapter(mAdapter); } private void initData() { data = new ArrayList<ListBean>(); for (int i = 0; i < 5; i++) { ListBean lb = new ListBean(); lb.setKey('設置 '+i); data.add(lb); } } }

activity_main.xml

<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' tools:context='.MainActivity' > <TextView android:layout_width='match_parent' android:layout_height='48dp' android:background='@color/white' android:gravity='center' android:text='設置' android:textSize='20sp' /> <RelativeLayout android:layout_width='match_parent' android:layout_height='match_parent' android:padding='10dp' > <ListView android: android:layout_width='match_parent' android:layout_height='wrap_content' android:background='@drawable/app_list_round' android:cacheColorHint='@android:color/transparent' android:divider='@drawable/app_list_divider' android:dividerHeight='2dip' android:padding='2dp' /> </RelativeLayout> </LinearLayout>

最后看看實現的效果

Android實現圓角ListView效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
夜夜精品视频| 成人在线黄色| 午夜精品成人av| 激情视频网站在线播放色| 美女视频黄免费的久久| 美腿丝袜亚洲一区| 精品一区视频| 久久99蜜桃| 国产高潮在线| 久久影院一区| 模特精品在线| 日本a口亚洲| 蜜桃免费网站一区二区三区| 日本成人在线不卡视频| 91免费精品国偷自产在线在线| 亚洲精品观看| 久久久久久久久成人| 成人在线视频免费| 狠狠操综合网| 日韩1区2区3区| 国内精品伊人| 亚洲成人免费| 欧美日韩一区二区三区四区在线观看| 国产精品久久久久久久久久齐齐| 国产不卡一区| 蜜臀av亚洲一区中文字幕| 国产精品一线| 国产aⅴ精品一区二区三区久久| 欧美日韩在线播放视频| 国产亚洲精品精品国产亚洲综合| 久久精品免视看国产成人| 蜜臀av免费一区二区三区| 人人精品久久| 国产一区日韩一区| 国产精品mv在线观看| 蜜桃久久av| 久久久久久久欧美精品| 午夜国产精品视频| 免费在线观看一区| 日本欧美在线看| 日韩电影免费在线观看| 国产精品一级| 欧美综合社区国产| 亚州精品视频| 一区在线免费| 日韩欧美一区二区三区在线视频| 在线视频精品| 久久精品国产亚洲夜色av网站 | 一区在线视频观看| 精品一区二区三区中文字幕| 午夜av成人| 精品久久久中文字幕| 亚洲综合福利| 免费视频久久| 美女日韩在线中文字幕| 亚州av乱码久久精品蜜桃| 正在播放日韩精品| 四虎8848精品成人免费网站| 91久久精品无嫩草影院| 国产一区白浆| 99国产精品私拍| 国产婷婷精品| 亚洲一区久久| 亚洲专区视频| 欧美日韩亚洲一区在线观看| 国产一精品一av一免费爽爽| 国产日产一区| 欧美精品97| 国产精品麻豆成人av电影艾秋 | 欧美精品第一区| 久久av网址| 国产麻豆精品久久| 国产日产一区| 精品久久精品| 免费不卡中文字幕在线| 99xxxx成人网| 日韩精品视频中文字幕| 国产精品亚洲综合在线观看| 国内不卡的一区二区三区中文字幕| 狠狠久久伊人| 1024精品久久久久久久久| 一区二区日韩免费看| 国产精品亚洲成在人线| 三上悠亚国产精品一区二区三区| 久久婷婷av| 日韩极品在线观看| 日韩福利一区| 男女性色大片免费观看一区二区| 国产伦理久久久久久妇女| 午夜av成人| 国产精区一区二区| 国精品一区二区| 91精品在线免费视频| 日韩精品永久网址| 日韩不卡在线观看日韩不卡视频| 欧美好骚综合网| 蜜臀av国产精品久久久久| 日韩电影免费在线观看| 中文字幕中文字幕精品| 午夜av不卡| 美女精品一区二区| 日韩亚洲精品在线观看| 福利视频一区| 日韩一区二区三区在线看| 国产亚洲一区二区手机在线观看| 日韩国产欧美三级| 午夜影院欧美| 日韩88av| 麻豆一区在线| 免费视频一区二区| 亚洲一级特黄| 亚洲精品永久免费视频| 7m精品国产导航在线| 快she精品国产999| 亚洲高清激情| 麻豆mv在线观看| 久久福利在线| 日韩精品久久久久久久软件91| 亚洲91精品| 亚洲伊人av| 高清精品久久| 成人在线超碰| 欧美精品第一区| 久久精品国产999大香线蕉| 国产精品一区二区三区美女 | 91福利精品在线观看| 影院欧美亚洲| 久久蜜桃av| 偷拍欧美精品| 99re国产精品| 日本中文字幕视频一区| 国产精品日韩精品在线播放| 国产精品久久免费视频| 久久免费福利| 日韩在线免费| 日韩欧美中文| 欧美肉体xxxx裸体137大胆| 成人午夜国产| 性色一区二区| 在线一区二区三区视频| 亚洲午夜国产成人| 亚洲精品亚洲人成在线观看| 日韩中文一区二区| 国产精品色婷婷在线观看| 国产成人精品亚洲线观看| 亚洲日本网址| 日韩欧美中文字幕在线视频| 久久av免费看| 精品一区免费| 欧美日韩91| 日韩欧美综合| 最新国产精品| 97精品在线| 日韩毛片一区| 高清一区二区| 香蕉久久久久久| 国产日产精品_国产精品毛片 | 欧美日韩伊人| 正在播放日韩精品| 美日韩精品视频| 久久影院一区二区三区| 久久精品一区二区不卡| 亚洲精品在线二区| 久久精品91| 久久99影视| 日本一不卡视频| re久久精品视频| 久久久久亚洲精品中文字幕| 在线综合亚洲| 国产精品毛片久久| 午夜性色一区二区三区免费视频| 国产精品国产三级国产在线观看| 欧美a级片一区| 久久这里只有| 国产亚洲观看| 亚洲图片久久| 久久国产电影| 国产精品115| 日韩精品视频一区二区三区| 午夜久久免费观看| 久久婷婷丁香| 黄色在线观看www| 国产精品99精品一区二区三区∴| 亚洲一区国产一区| 激情欧美日韩一区| 国产suv精品一区二区四区视频| 日韩久久99| 日本中文字幕一区二区视频| 石原莉奈在线亚洲二区| 欧美日韩国产精品一区二区亚洲| 日韩深夜视频| 国产成人免费| 国产精品第一国产精品| 国产亚洲第一伦理第一区| 青青草91视频| 日韩国产欧美三级| 日韩欧美另类中文字幕| 日本亚洲欧洲无免费码在线| 在线亚洲观看| 免费成人在线影院|