캡쳐 화면을 찍었습니다. 그것의 이상한 길을 표시 : GridView가 올바르게 표시되지 않습니다.
이것은 코드입니다.
GridAdapter :public class GridViewAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<Uri> mUrls;
// references to our images
public GridViewAdapter(Context c, ArrayList<Uri> images) {
mContext = c;
this.mUrls = images;
}
public int getCount() {
return mUrls.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
ImageView inflatedImageView = (ImageView) mInflater.inflate(R.layout.imageview_amb_background, null);
//ImageView imageView = new ImageView(mContext);
inflatedImageView.setImageURI(mUrls.get(position));
inflatedImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
return inflatedImageView;
}
그리고 inflatedImageView
는 레이아웃과 같이, 팽창되어 한편
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/bgimages"
android:maxWidth="120dp"
android:padding="5dp">
</ImageView>
, 나는 XML 파일에 GRIDVIEW을했습니다 :
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="250dp"
android:horizontalSpacing="5dp"
android:numColumns="3"
android:verticalSpacing="5dp" >
</GridView>
그래서이 gridView를 부풀려서 여러 개의 URI (정확히 3 개)를 루프에 추가합니다. 추가 한 후에는 어댑터를 gridview에 설정합니다.
ArrayList<Uri> uriFotos = new ArrayList<Uri>();
HashMap<Integer, ListItem> items = xmlList.getItems();
for (int i = 0; i<items.size();i++){
ListItem itemActual = items.get(i);
itemActual.getLogoSrc();
uriFotos.add(Uri.parse(Environment.getExternalStorageDirectory().toString()+rutaFinsCarpetaClient+itemActual.getLogoSrc()));
}
gridViewInflated.setAdapter(new GridViewAdapter(this,uriFotos));
variableContent.addView(gridViewInflated);
이미지가 올바르게 "링크"됩니다.
variableContent
은 ScrollView 내부의 LinearLayout이므로 그리드를 스크롤 할 수 있어야합니다. 하지만 알 수 있듯이 몇 가지 일이 발생하고 있습니다.
- 높이가 너무 큽니다.
inflatedImageView
처럼 말하면 안 될까요? - 스크롤이 작동하지 않습니다. 음, 작동하지만 손가락이 움직일 때까지 손가락을 여러 번 두 드리십시오. 스크롤을 멈 추면 다시 반응 할 때까지 동일한 과정을 반복해야합니다. (해법)
당신이 도와 줄 수 있기를 바랍니다. 레이아웃이 많이 바뀌었고 너비와 높이가 바뀌었고 같은 일이 일어나고 있습니다.
gridView에 표시되는 이미지는 1200x800px와 비슷합니다.
편집 작은 이미지와 동일한 코드 :
제거 배경 이미지와 안드로이드로 설정하십시오 XML – Senthil
에서 SRC 당신이 안드로이드에 설정에게의 GridView 열 높이를 시도 : layout_height = "wrap_content"? – nedaRM
@vsk 나는 그것을 할 수 없다. 백그라운드는 전체보기의 배경입니다. 그런 다음 dinamically sdcard의 jpg 파일에서 SRC에 이미지를 추가합니다. 그래서 저는 bg와 src 둘 다 가지고 있어야합니다. Btw,이 bg는 162x162입니다. 화이트. 주위에 국경이 있습니다. – Reinherd