2016-07-15 22 views
0

我一直在試圖從我的文件夾繪製顯示位圖,調整它們的大小(這部分工作得很好),並把它們放在一個列表視圖,但是當我運行出現在我的代碼沒有什麼...ListView的位圖

這裏它是:

public class MainActivity extends AppCompatActivity { 
ImageView image; 
Bitmap[] data; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    image = (ImageView) findViewById(R.id.image); 
    ListView list=(ListView)findViewById(R.id.list); 
    data=new Bitmap[4]; 

    calculateInSampleSize size=new calculateInSampleSize(); 
    data[0]=(size.decodeSampledBitmapFromResource(getResources(),R.drawable.ic_image1,100,100)); 
    data[1]=(size.decodeSampledBitmapFromResource(getResources(),R.drawable.ic_image2,100,100)); 
    data[2]=(size.decodeSampledBitmapFromResource(getResources(),R.drawable.ic_image3,100,100)); 
    data[3]=(size.decodeSampledBitmapFromResource(getResources(),R.drawable.ic_image4,100,100)); 

    Adapter adapter=new Adapter(this,R.layout.pager_item,data); 
    list.setAdapter(adapter); 

我的適配器:

public class Adapter extends BaseAdapter{ 
Bitmap[] dataSource; 
LayoutInflater minflater; 
Activity parentActivity; 
int itemLayout; 


// constructor for adapter 
public Adapter (Activity activity, int layout, Bitmap[] ds){ 
    parentActivity = activity; 
    itemLayout = layout; 
    dataSource = ds; 
} 


@Override 
public int getCount() { 
    return 0; 
} 

@Override 
public Object getItem(int position) { 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView view; 

    if(convertView!=null){ 
     view=(ImageView)convertView; 
    } 
    else{ 
     view=(ImageView)minflater.inflate(itemLayout,parent,false); 
     view.setImageBitmap(dataSource[position]); 

    } 


    return view; 
} 

我當然有它一個ListView,另一個與ImageView的佈局(pager_item.XML)

謝謝您的幫助

+1

有什麼異常? – Zoe

回答

2

修改您的適配器,如:

@Override 
public int getCount() { 
    return dataSource.length; 
} 

@Override 
public Bitmap getItem(int position) { 
    return dataSource[position]; 
} 
1

的問題是,你是在

@Override 
public int getCount() { 
    return 0; 
} 

你應該返回0返回

dataSource.length; 

@Override 
public Bitmap getItem(int position) { 
return null; 
} 

您應該返回

return dataSource[position]; 
0

我做你倆的答案,但每當我啓動它我的應用程序會崩潰。

我改變了一些東西:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view=null; 

    if(convertView!=null){ 
     view=convertView; 
    } 
    else{ 
     view= minflater.inflate(itemLayout, parent, false); 
     ImageView imageView=(ImageView)view.findViewById(R.id.image); 
     imageView.setImageBitmap(dataSource[position]); 

    } 


    return view; 
} 

和我說這在我的構造函數:

minflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

謝謝!