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

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

Android實現圓角ListView效果

瀏覽:164日期: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://m.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久久,三上悠亚国产精品一区二区三区
久久99青青| 日本亚洲不卡| 久久伊人国产| 日韩中文字幕| 亚洲一区二区三区久久久| 日韩网站在线| 亚洲欧美日韩国产一区| 国产精品日韩欧美一区| 国产精品毛片一区二区三区| 亚洲一区国产| 免费美女久久99| 亚洲精品中文字幕99999| 亚洲综合中文| 日韩精品亚洲专区在线观看| 青草久久视频| 久久精品一区二区三区中文字幕| 国产精品一区2区3区| 美女高潮久久久| 韩国女主播一区二区三区| 国产精品毛片久久| 欧美黄色网页| 欧美日韩国产免费观看| 石原莉奈一区二区三区在线观看| 亚洲人成高清| 国产精品一区二区精品视频观看| 麻豆精品av| 亚洲成人不卡| 99在线|亚洲一区二区| 亚洲精品高潮| 国产精品免费大片| xxxxx性欧美特大| 国产真实久久| 一区二区国产在线| 亚洲一二av| 久久av免费看| 久久人人88| 亚洲欧美网站在线观看| 国产精品久久乐| 欧美一区久久久| 日韩中文字幕1| 国产精品嫩模av在线| www.51av欧美视频| 国产农村妇女精品一区二区| 日韩黄色在线观看| 国产成人免费视频网站视频社区| 999国产精品视频| 蜜桃视频一区二区三区| 麻豆国产欧美一区二区三区| 亚洲va中文在线播放免费| 丝袜亚洲另类欧美| 韩国女主播一区二区三区| 一区二区亚洲精品| 国产情侣一区在线| 日韩欧美看国产| 亚洲精品日韩久久| 麻豆国产91在线播放| 91久久久精品国产| 国产精品色婷婷在线观看| 久久影院一区| 国产欧美自拍一区| 国产综合精品| 久久精品亚洲一区二区| 亚洲少妇在线| 久久中文字幕一区二区| 亚洲一区二区毛片| 首页国产精品| 四虎在线精品| 国产99久久| 国产精品嫩模av在线| 婷婷成人在线| 久久av中文| 中文字幕av一区二区三区人| 日韩欧美国产精品综合嫩v| 日韩成人午夜精品| 色老板在线视频一区二区| 天堂俺去俺来也www久久婷婷| 日韩深夜视频| 国产精品流白浆在线观看| 国产精品88久久久久久| 风间由美中文字幕在线看视频国产欧美| 首页国产欧美日韩丝袜| 国产精品精品国产一区二区| 国产手机视频一区二区| av资源亚洲| 欧美激情在线精品一区二区三区| 免费在线观看一区二区三区| 快播电影网址老女人久久| 国产精品欧美一区二区三区不卡| 在线观看亚洲精品福利片| 99精品在线观看| 国产一区二区三区四区二区| 国产亚洲精aa在线看| 热久久久久久久| 欧美一区二区三区高清视频| 精品久久99| 久久不见久久见中文字幕免费 | 7777精品| 在线一区视频| 色老板在线视频一区二区| 国内一区二区三区| 国产精品xvideos88| 日韩不卡一二三区| 亚洲资源网站| 香蕉成人久久| 蜜桃tv一区二区三区| 吉吉日韩欧美| 久久69成人| 免费日韩成人| 国产乱码精品一区二区三区亚洲人 | 国产欧美日本| 热久久免费视频| 亚洲一区日本| 日韩午夜高潮| 在线一区欧美| 午夜在线视频一区二区区别| 国产主播一区| 亚洲女同一区| 日韩午夜黄色| 午夜在线视频一区二区区别 | 91精品蜜臀一区二区三区在线| 中文在线中文资源| 日韩88av| 中文字幕在线视频久| 国产精品成人a在线观看| 精品视频国产| 久久尤物视频| 黄色欧美在线| 国产精品二区不卡| 亚洲深夜视频| 国产精品99一区二区三区| 高清精品久久| 欧美日韩视频网站| 久久高清免费| 黄色亚洲免费| 蜜桃视频一区二区| 日韩福利在线观看| 国产精品免费大片| 国产午夜久久av| 日韩高清一区| 精品久久91| 国产日韩专区| 亚洲精品影视| 日韩高清二区| 免费视频一区二区三区在线观看| 亚洲日本在线观看视频| 日本不卡一区二区三区| 日本视频一区二区| 欧美国产极品| 日韩在线二区| 先锋影音久久久| 国产一级成人av| 九九久久国产| 999久久久国产精品| 丝瓜av网站精品一区二区| 91午夜精品| 久久精品一区二区国产| 99精品小视频| 亚洲精品四区| 国产中文欧美日韩在线| 久久狠狠婷婷| 亚洲久久视频| 成人一区而且| 亚洲欧洲一区| 日韩激情精品| 亚洲最新无码中文字幕久久 | 久久精品72免费观看| 国产一区精品福利| 午夜国产精品视频免费体验区| 鲁大师成人一区二区三区 | 色偷偷色偷偷色偷偷在线视频| 99久久婷婷| 奇米777国产一区国产二区| 精品理论电影在线| 亚洲激情精品| 国产欧美日韩亚洲一区二区三区| 伊人久久视频| 久久先锋影音| 欧美激情一区| 在线日韩中文| 欧美一区二区三区久久| 深夜福利视频一区二区| 亚洲日产国产精品| 中文字幕在线看片| 婷婷五月色综合香五月| 91一区二区三区四区| 亚洲深夜av| 国产一区二区三区四区| 免费人成黄页网站在线一区二区| 成人精品高清在线视频| 亚洲一级淫片| 久久国产毛片| 国产欧美三级| 一区二区视频欧美| 欧美国产不卡| 精品国产精品国产偷麻豆 | 国产精品99久久久久久董美香| 人人草在线视频| 日韩三区四区| 国产v日韩v欧美v| 亚洲精品乱码|