免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
java-陣列適配器從Res文件夾加載圖像(Android App)

Android新手.我試圖通過(guò)數(shù)組適配器將res / Drawable文件夾中的一堆圖像加載到Gridview中.不幸的是,每次我嘗試使用gridView查看活動(dòng)時(shí),我的應(yīng)用程序都會(huì)崩潰.我想知道如何設(shè)置res文件夾中要顯示在Gridview中的圖像的imageResource.

這是我的代碼:

Smile.class

    public class Smiley extends Activity {    GridView gridView;   @Override   protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.smile);    gridView = (GridView) findViewById(R.id.gridView1);    String planets[] = this.getResources().getStringArray(R.array.imageme);     ArrayAdapter<String>adapter  = new  ArrayAdapter<String>  (this,R.layout.grid_view_row,R.id.imageGrid , planets);     gridView.setAdapter(adapter);   }      }

Smile.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="match_parent"  android:background="@drawable/blurred"  >     <GridView     android:id="@ id/gridView1"    android:layout_width="match_parent"    android:layout_height="match_parent"     android:columnWidth="90dp"     android:numColumns="auto_fit"     android:verticalSpacing="10dp"     android:horizontalSpacing="10dp"     android:stretchMode="columnWidth"     android:gravity="center"     >    </GridView> </RelativeLayout>

grid_view_row.xml(Gridview的自定義布局)

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"  >    <ImageView    android:id="@ id/imageGrid"    android:layout_width="match_parent"    android:layout_height="match_parent"     android:padding="2dp"    android:src="@drawable/a"     />  </FrameLayout> 

我的字符串?dāng)?shù)組(xml)

   <?xml version="1.0" encoding="utf-8"?>    <resources>   <string-array name="imageme">   <item>@drawable/a</item>      <item>@drawable/b</item>    <item>@drawable/c</item>    <item>@drawable/d</item>     </string-array>   </resources>

logcat的

    09-04 16:48:40.561: E/ArrayAdapter(25938): You must supply a resource ID for a           TextView      09-04 16:48:40.568: E/AndroidRuntime(25938): FATAL EXCEPTION: main         09-04 16:48:40.568: E/AndroidRuntime(25938): java.lang.IllegalStateException:  ArrayAdapter requires the resource ID to be a TextView        09-04 16:48:40.568: E/AndroidRuntime(25938):    at     android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386)         09-04 16:48:40.568: E/AndroidRuntime(25938):   at      android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)      09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.widget.AbsListView.obtainView(AbsListView.java:2207)      09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.widget.GridView.onMeasure(GridView.java:1040)    09-04 16:48:40.568: E/AndroidRuntime(25938):    at android.view.View.measure(View.java:15609)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:645)        09-04 16:48:40.568: E/AndroidRuntime(25938):    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:425)        09-04 16:48:40.568: E/AndroidRuntime(25938):    at android.view.View.measure(View.java:15609)      09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4916)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)       09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.view.View.measure(View.java:15609)       09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:850)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.view.View.measure(View.java:15609)       09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4916)       09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)  09-04 16:48:40.568: E/AndroidRuntime(25938):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2203)    09-04 16:48:40.568: E/AndroidRuntime(25938):    at android.view.View.measure(View.java:15609)   09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2165)      09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1249)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1443)    09-04 16:48:40.568: E/AndroidRuntime(25938):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1139)   09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4879)  09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.view.Choreographer.doCallbacks(Choreographer.java:579)  09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.view.Choreographer.doFrame(Choreographer.java:548)   09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)   09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.os.Handler.handleCallback(Handler.java:725)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at android.os.Handler.dispatchMessage(Handler.java:92)       09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.os.Looper.loop(Looper.java:153)  09-04 16:48:40.568: E/AndroidRuntime(25938):  at android.app.ActivityThread.main(ActivityThread.java:5297)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at java.lang.reflect.Method.invokeNative(Native Method)     09-04 16:48:40.568: E/AndroidRuntime(25938):   at java.lang.reflect.Method.invoke(Method.java:511)    09-04 16:48:40.568: E/AndroidRuntime(25938):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)        09-04 16:48:40.568: E/AndroidRuntime(25938):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)    09-04 16:48:40.568: E/AndroidRuntime(25938):    at dalvik.system.NativeStart.main(Native Method)  09-04 16:48:40.568: E/AndroidRuntime(25938): Caused by: java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.TextView   09-04 16:48:40.568: E/AndroidRuntime(25938):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:382)     09-04 16:48:40.568: E/AndroidRuntime(25938):   ... 35 more

請(qǐng)幫助.謝謝

解決方法:

您問(wèn)題的具體答案是適配器的構(gòu)造函數(shù)是:

(this,R.layout.grid_view_row,R.id.imageGrid , planets);

R.layout.grid_view_row需要是一個(gè)只有TextView的xml文件.不能將其包裝在LinearLayout或RelativeLayout之類(lèi)的其他內(nèi)容中.因此,您需要:

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    //attributes/>

但是,如果要將圖像加載到GridView中,建議使用擴(kuò)展BaseAdapter的“圖像適配器”,然后從那里獲取圖像.與此示例非常相似:

public class ImageAdapter extends BaseAdapter {private Context mContext;public ImageAdapter(Context c) {    mContext = c;}public int getCount() {    return mThumbIds.length;}public Object getItem(int position) {    return null;}public long getItemId(int position) {    return 0;}// create a new ImageView for each item referenced by the Adapterpublic View getView(int position, View convertView, ViewGroup parent) {    ImageView imageView;    if (convertView == null) {  // if it's not recycled, initialize some attributes        imageView = new ImageView(mContext);        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);        imageView.setPadding(8, 8, 8, 8);    } else {        imageView = (ImageView) convertView;    }    imageView.setImageResource(mThumbIds[position]);    return imageView;}// references to your imagesprivate Integer[] mThumbIds = {        R.drawable.sample_2, R.drawable.sample_3,        R.drawable.sample_4, R.drawable.sample_5,        R.drawable.sample_6, R.drawable.sample_7,        R.drawable.sample_0, R.drawable.sample_1,        R.drawable.sample_2, R.drawable.sample_3,        R.drawable.sample_4, R.drawable.sample_5,        R.drawable.sample_6, R.drawable.sample_7,        R.drawable.sample_0, R.drawable.sample_1,        R.drawable.sample_2, R.drawable.sample_3,        R.drawable.sample_4, R.drawable.sample_5,        R.drawable.sample_6, R.drawable.sample_7};

}

getView用于設(shè)置網(wǎng)格的外觀,而mThumbIds是所需的每張圖片的數(shù)組.在此處要顯示GridView的Activity中,只需添加代碼即可:

gridview.setAdapter(new ImageAdapter(this));
來(lái)源:https://www.icode9.com/content-1-506651.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ActivityGroup 實(shí)現(xiàn)分頁(yè)和自定義標(biāo)簽(內(nèi)有GridView的點(diǎn)擊背景樣式的改變...
Android開(kāi)發(fā)學(xué)習(xí)筆記:Gallery和GridView淺析
Android入門(mén)之ActivityGroup+GridView實(shí)現(xiàn)Tab分頁(yè)標(biāo)簽的方法
ImageView.ScaleType
Android AppWidget如何支持復(fù)雜的View
ArrayAdapter和BaseAdapter介紹
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服