女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]本文內(nèi)容:1、橫向ListView的所有實(shí)現(xiàn)思路;2、其中一個最通用的思路HorizontalListView,并基于橫向ListView開發(fā)一個簡單的相冊;3、實(shí)現(xiàn)的橫向ListView在點(diǎn)擊、瀏覽

本文內(nèi)容:

1、橫向ListView的所有實(shí)現(xiàn)思路;

2、其中一個最通用的思路HorizontalListView,并基于橫向ListView開發(fā)一個簡單的相冊;

3、實(shí)現(xiàn)的橫向ListView在點(diǎn)擊、瀏覽時item背景會變色,并解決了listview里setSelected造成item的選擇狀態(tài)混亂的問題。

眾所周知,ListView默認(rèn)的方向是垂直的,但有些時候人們更喜歡橫向ListView??v觀整個網(wǎng)絡(luò),橫向ListView的實(shí)現(xiàn)思路如下:

1、在布局里用HorizontalScrollView包含一個ListView,參考這里;

2、利用GridView,把它的行數(shù)設(shè)為1行;

3、有人繼承ListView構(gòu)造了一個HorizontalScrollListView,參見:這里

4、國外一位大牛繼承AdapterView

下面看源碼: 這是Activity的布局文件:activity_main.xml
[html] view plaincopyprint???

這是橫向listview的每個item的布局,圖片+文字,horizontal_list_item.xml [html] view plaincopyprint???
下面文件是selector_imageview_background.xml,這是大圖片你點(diǎn)擊瀏覽時背景發(fā)生變化的selector,沒有啥實(shí)際作用。 [html] view plaincopyprint???
下面是每個item的selector,在focus和select時顏色會發(fā)生變化:selector_item_background.xml [html] view plaincopyprint???
主程序:MainActivity.java
[java] view plaincopyprint?package?org.yanzi.testhorizontallistview;????import?org.yanzi.ui.HorizontalListView;??import?org.yanzi.ui.HorizontalListViewAdapter;????import?android.app.Activity;??import?android.os.Bundle;??import?android.view.Menu;??import?android.view.View;??import?android.widget.AdapterView;??import?android.widget.AdapterView.OnItemClickListener;??import?android.widget.ImageView;????public?class?MainActivity?extends?Activity?{??????HorizontalListView?hListView;??????HorizontalListViewAdapter?hListViewAdapter;??????ImageView?previewImg;??????View?olderSelectView?=?null;??????@Override??????protected?void?onCreate(Bundle?savedInstanceState)?{??????????super.onCreate(savedInstanceState);??????????setContentView(R.layout.activity_main);??????????initUI();??????}????????@Override??????public?boolean?onCreateOptionsMenu(Menu?menu)?{??????????//?Inflate?the?menu;?this?adds?items?to?the?action?bar?if?it?is?present.??????????getMenuInflater().inflate(R.menu.main,?menu);??????????return?true;??????}??????public?void?initUI(){??????????hListView?=?(HorizontalListView)findViewById(R.id.horizon_listview);??????????previewImg?=?(ImageView)findViewById(R.id.image_preview);??????????String[]?titles?=?{"懷師",?"南懷瑾軍校",?"閉關(guān)",?"南懷瑾",?"南公莊嚴(yán)照",?"懷師法相"};??????????final?int[]?ids?=?{R.drawable.nanhuaijin_miss,?R.drawable.nanhuaijin_school,??????????????????R.drawable.nanhuaijin_biguan,?R.drawable.nanhuaijin,??????????????????R.drawable.nanhuaijin_zhuangyan,?R.drawable.nanhuaijin_faxiang};??????????hListViewAdapter?=?new?HorizontalListViewAdapter(getApplicationContext(),titles,ids);??????????hListView.setAdapter(hListViewAdapter);??????????//??????hListView.setOnItemSelectedListener(new?OnItemSelectedListener()?{??????????//??????????//??????????@Override??????????//??????????public?void?onItemSelected(AdapterView??
HorizontalListView.java 這就是自定義的橫向listview
[java] view plaincopyprint?package?org.yanzi.ui;????/*??*?HorizontalListView.java?v1.5??*??*???*?The?MIT?License??*?Copyright?(c)?2011?Paul?Soucy?(paul@dev-smart.com)??*???*?Permission?is?hereby?granted,?free?of?charge,?to?any?person?obtaining?a?copy??*?of?this?software?and?associated?documentation?files?(the?"Software"),?to?deal??*?in?the?Software?without?restriction,?including?without?limitation?the?rights??*?to?use,?copy,?modify,?merge,?publish,?distribute,?sublicense,?and/or?sell??*?copies?of?the?Software,?and?to?permit?persons?to?whom?the?Software?is??*?furnished?to?do?so,?subject?to?the?following?conditions:??*???*?The?above?copyright?notice?and?this?permission?notice?shall?be?included?in??*?all?copies?or?substantial?portions?of?the?Software.??*???*?THE?SOFTWARE?IS?PROVIDED?"AS?IS",?WITHOUT?WARRANTY?OF?ANY?KIND,?EXPRESS?OR??*?IMPLIED,?INCLUDING?BUT?NOT?LIMITED?TO?THE?WARRANTIES?OF?MERCHANTABILITY,??*?FITNESS?FOR?A?PARTICULAR?PURPOSE?AND?NONINFRINGEMENT.?IN?NO?EVENT?SHALL?THE??*?AUTHORS?OR?COPYRIGHT?HOLDERS?BE?LIABLE?FOR?ANY?CLAIM,?DAMAGES?OR?OTHER??*?LIABILITY,?WHETHER?IN?AN?ACTION?OF?CONTRACT,?TORT?OR?OTHERWISE,?ARISING?FROM,??*?OUT?OF?OR?IN?CONNECTION?WITH?THE?SOFTWARE?OR?THE?USE?OR?OTHER?DEALINGS?IN??*?THE?SOFTWARE.??*??*/??????import?java.util.LinkedList;??import?java.util.Queue;????import?android.content.Context;??import?android.database.DataSetObserver;??import?android.graphics.Rect;??import?android.util.AttributeSet;??import?android.view.GestureDetector;??import?android.view.GestureDetector.OnGestureListener;??import?android.view.MotionEvent;??import?android.view.View;??import?android.widget.AdapterView;??import?android.widget.ListAdapter;??import?android.widget.Scroller;????public?class?HorizontalListView?extends?AdapterView??
HorizontalListViewAdapter.java 橫向listview的適配器,我將他單獨(dú)寫到一個java文件里。
[java] view plaincopyprint?package?org.yanzi.ui;????import?org.yanzi.testhorizontallistview.R;??import?org.yanzi.util.BitmapUtil;????import?android.content.Context;??import?android.graphics.Bitmap;??import?android.graphics.drawable.Drawable;??import?android.media.ThumbnailUtils;??import?android.view.LayoutInflater;??import?android.view.View;??import?android.view.ViewGroup;??import?android.widget.BaseAdapter;??import?android.widget.ImageView;??import?android.widget.TextView;????public?class?HorizontalListViewAdapter?extends?BaseAdapter{??????private?int[]?mIconIDs;??????private?String[]?mTitles;??????private?Context?mContext;??????private?LayoutInflater?mInflater;??????Bitmap?iconBitmap;??????private?int?selectIndex?=?-1;????????public?HorizontalListViewAdapter(Context?context,?String[]?titles,?int[]?ids){??????????this.mContext?=?context;??????????this.mIconIDs?=?ids;??????????this.mTitles?=?titles;??????????mInflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);//LayoutInflater.from(mContext);??????}??????@Override??????public?int?getCount()?{??????????return?mIconIDs.length;??????}??????@Override??????public?Object?getItem(int?position)?{??????????return?position;??????}????????@Override??????public?long?getItemId(int?position)?{??????????return?position;??????}????????@Override??????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????????ViewHolder?holder;??????????if(convertView==null){??????????????holder?=?new?ViewHolder();??????????????convertView?=?mInflater.inflate(R.layout.horizontal_list_item,?null);??????????????holder.mImage=(ImageView)convertView.findViewById(R.id.img_list_item);??????????????holder.mTitle=(TextView)convertView.findViewById(R.id.text_list_item);??????????????convertView.setTag(holder);??????????}else{??????????????holder=(ViewHolder)convertView.getTag();??????????}??????????if(position?==?selectIndex){??????????????convertView.setSelected(true);??????????}else{??????????????convertView.setSelected(false);??????????}????????????????????holder.mTitle.setText(mTitles[position]);??????????iconBitmap?=?getPropThumnail(mIconIDs[position]);??????????holder.mImage.setImageBitmap(iconBitmap);????????????return?convertView;??????}????????private?static?class?ViewHolder?{??????????private?TextView?mTitle?;??????????private?ImageView?mImage;??????}??????private?Bitmap?getPropThumnail(int?id){??????????Drawable?d?=?mContext.getResources().getDrawable(id);??????????Bitmap?b?=?BitmapUtil.drawableToBitmap(d);??//??????Bitmap?bb?=?BitmapUtil.getRoundedCornerBitmap(b,?100);??????????int?w?=?mContext.getResources().getDimensionPixelOffset(R.dimen.thumnail_default_width);??????????int?h?=?mContext.getResources().getDimensionPixelSize(R.dimen.thumnail_default_height);????????????????????Bitmap?thumBitmap?=?ThumbnailUtils.extractThumbnail(b,?w,?h);????????????????????return?thumBitmap;??????}??????public?void?setSelectIndex(int?i){??????????selectIndex?=?i;??????}??}?

下圖是一個item被選定后,另一個item獲得了焦點(diǎn):

要點(diǎn)如下: 1、可以說這個HorizontalListView是完美的,但美中不足的并不是其他人說的不能點(diǎn)擊、晃動、加載不全的問題,而是這個橫向Listview的高度,如果你設(shè)成wrap_cotent那么將會占據(jù)整個屏幕,即使你將它適配器里的view的高度限制死,限制成很小,這個HorizontalListView的高度依然是全屏。本文代碼里,我把圖片縮略圖弄成100dip,所以把這個HorizontalListView的高度設(shè)為了150dip。 2、在適配器里,我填充了一個圖片,下面是文字。為了能讓瀏覽圖片時item有反應(yīng),搞了一個selector,它的用法詳見這里. 但一開始在點(diǎn)擊時完全沒有反應(yīng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉