今天就跟大家聊聊有關(guān)StackView怎么在Android中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
歷下網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),歷下網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為歷下1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的歷下做網(wǎng)站的公司定做!
一、直接閃退,然后報(bào)錯(cuò)。一般會(huì)有頭這么一句話:
Failed to allocate a 74649612 byte allocation with 16765728 free bytes and 59MB until OOM
提示一個(gè)很明白了,內(nèi)存溢出,具體原因是關(guān)于Android的內(nèi)存分配機(jī)制的這里就不詳細(xì)講了
這不經(jīng)事StackView常見的問(wèn)題,所有添加圖片的活動(dòng)都可能發(fā)生
怎么辦呢?主要有兩種辦法:
1.暴力直接,用圖片轉(zhuǎn)換器(或者直接用windows自帶畫圖工具)將圖進(jìn)行壓縮。但很明顯治標(biāo)不治本。
2.將圖片轉(zhuǎn)為Bitmap,然后再將其質(zhì)量和大小進(jìn)行壓縮。
二、加完圖片后發(fā)現(xiàn)圖片不顯示
這個(gè)一般來(lái)說(shuō)是代碼本身的問(wèn)題
檢查下你List對(duì)象和Adapter對(duì)象的一些名字是否一致
這里以MainActivity為例(改編自瘋狂Android)
public class MainActivity extends Activity { StackView stackView ; int[] imageIds = new int[]{ R.drawable.a0,R.drawable.a00,R.drawable.a1,R.drawable.a02, R.drawable.a1,R.drawable.a2, R.drawable.a3 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); stackView = (StackView) findViewById(R.id.mStackView); //創(chuàng)建一個(gè)list 對(duì)象 元素是MAP List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>(); for( int i = 0 ; i < imageIds.length ; i++ ){ Map<String,Object> listItem = new HashMap<String, Object>(); listItem.put("image",imageIds[i]); listItems.add(listItem); } //創(chuàng)建一個(gè)Simple Adapter SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.photo, new String[]{"image"}, new int[]{R.id.image1}); stackView.setAdapter(simpleAdapter); } public void prev(View source){ //顯示上一個(gè)組件 stackView.showPrevious(); } public void next(View source){ //顯示下一個(gè)組件 stackView.showNext(); } }
注意檢查一下listItems和simpleAdapter用來(lái)存放圖片的變量名是否一致
比如我這兒是叫做image
這是比較常見的一種錯(cuò)誤,如果是其他錯(cuò)誤則需要大家再去Google一下了
鑒于很多同學(xué)表示不知道cell (我這里叫做photo)這個(gè)layout是什么
其實(shí)就是一個(gè)很簡(jiǎn)單的layout 向自定義listView等等,很多時(shí)候都得用上這種自定義的layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/image1" android:layout_width="200dp" android:layout_height="200dp" android:scaleType="fitXY" android:layout_gravity="center"/> </LinearLayout>
我遇到的坑大概就這些了,最后附上布局文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <StackView android:id="@+id/mStackView" android:layout_width="match_parent" android:layout_height="wrap_content" android:loopViews="true"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center_horizontal" android:orientation="horizontal"> <Button android:id="@+id/button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="prev" android:text="上一個(gè)" /> <Button android:id="@+id/button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="next" android:text="下一個(gè)" /> </LinearLayout> </RelativeLayout>
看完上述內(nèi)容,你們對(duì)StackView怎么在Android中使用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
新聞名稱:StackView怎么在Android中使用
本文URL:http://jinyejixie.com/article34/ipihse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、微信小程序、建站公司、用戶體驗(yàn)、全網(wǎng)營(yíng)銷推廣、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)