2011-08-05 2 views
0

내 코드에 문제가 있습니다 (원하는 방식으로 작동하지 않습니다). 나는 일련의 이미지들을 가지고있다. (이미지의 수는 다를 수있다.) 나는 그리드 뷰에 그것들을 넣는다. columnWidth의 = "150 픽셀"안드로이드 : layout_height = "fill_parent" 그냥 화면의 절반을 채우고 그 안드로이드가있는 gridview를 들어레이아웃이 안드로이드 문제

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeLayoutRest" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button android:layout_alignParentLeft="true" 
     android:layout_width="50px" android:id="@+id/adbutton" 
     android:layout_height="fill_parent" android:text="\n\nR\nE\nK\nL\nA\nML\nA\nR\n\n" 
     android:textStyle="bold"> 
    </Button> 
    <ScrollView android:id="@+id/scrollViewRest" 
     android:paddingLeft="100px" android:layout_width="wrap_content" 
     android:layout_height="fill_parent"> 
     <LinearLayout android:id="@+id/linearLayout1" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:orientation="horizontal"> 
      <GridView android:id="@+id/gridViewRest" android:gravity="center" 
       android:stretchMode="columnWidth" android:horizontalSpacing="50px" 
       android:layout_width="wrap_content" android:verticalSpacing="50px" 
       android:columnWidth="150px" android:layout_height="fill_parent" 
       android:numColumns="auto_fit"></GridView> 
     </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 

: 아래에있는 내 XML이다. 그러나 그것의 800 px가 잘 작동 할 때. 시스템이 동적이기 때문에 설치할 때마다 XML을 사용하고 싶지 않습니다. 나는이 도움이 필요하고 아래에있는 내 자바 파일은 경우입니다 :

public class RestListActivity extends Activity{ 
    //ImageButton [] buttons; 
    RelativeLayout rl; 
    int restCount=0; 
    Resources a; 
    int resIndex=0; 
    boolean resFound=false; 
    int last; 
    int resCount=0; 
    // TODO Auto-generated constructor stub 
    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.restlist); 
     rl = (RelativeLayout) findViewById(R.id.relativeLayoutRest); 

     Log.i("asd","asd"); 

     a=this.getResources(); 
     int i=0x7f020000; 
     boolean done=true; 

     Log.i("asd","asd"); 
     ArrayList <Integer> restLogoIDs=new ArrayList<Integer>(); 
     try 
     { 
      for (i=0x7f020000 ;done&&i<0x7f020040;i++) 
      { 
       Log.i("rest buttons","----"+i); 
       String name=a.getResourceName(i); 
       name=name.substring(name.indexOf(':')+1); 
       name=name.substring(9); 
       if(name.startsWith("rest")) 
       { 
        restLogoIDs.add(new Integer(i)); 
        if(!resFound) 
        { 
         resIndex=i; 
         resFound=true; 
        } 
        Log.i("rest buttons",name); 

        resCount++; 
       } 
      } 
     } 
     catch(Exception e) 
     { 
      last=i; 
      Log.i("LAST",i+""); 
      done=false; 
      e.printStackTrace(); 
     } 

     Button orderButton = (Button)findViewById(R.id.adbutton); 
     orderButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Log.i("ACTION","AD BUTTON CLICKED"); 
       try 
       { 
        Intent i = new Intent(RestListActivity.this,AVMSystemActivity.class); 
        startActivity(i); 
       } 
       catch(Exception e) 
       { 
        Log.i("cort",e.toString()); 
       } 
      } 
     }); 

     //************************************************************************************ 
     //************************************************************************************ 
     //************************************************************************************ 

     GridView gridview = (GridView) findViewById(R.id.gridViewRest); 

     ImageAdapter ia=new ImageAdapter(this); 
     ia.setImageIDs(restLogoIDs); 
     ia.setResources(a); 
     gridview.setAdapter(ia); 

    } 
} 




public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 
    public ArrayList <Integer> restLogoIDs=new ArrayList<Integer>(); 
    Resources res; 

    public ImageAdapter(Context c) { 
     mContext = c; 
    } 
    public void setResources(Resources r) 
    { 
     res=r; 
    } 
    public void setImageIDs(ArrayList <Integer> restLogoIDs) 
    { 
     this.restLogoIDs=restLogoIDs; 
    } 
    public int getCount() { 
     return restLogoIDs.size(); 
    } 

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

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     Log.i("=============","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");  
     int i=0x7f020000; 
     boolean done=true; 

     try 
     { 
      for (i=0x7f020000 ;done&&i<0x7f020040;i++) 
      { 
       Log.i("rest buttons","----"+i); 
       String name=res.getResourceName(i); 
       name=name.substring(name.indexOf(':')+1); 
       name=name.substring(9); 
       if(name.startsWith("rest")) 
       { 
        //restLogoIDs.add(new Integer(i)); 
        Log.i("rest buttons",name);       
       } 
      } 
     } 
     catch(Exception e) 
     { 
      Log.i("LAST",i+""); 
      done=false; 
      e.printStackTrace(); 
     } 
     ImageView imageView; 
      if (convertView == null) { // if it's not recycled, initialize some attributes 
       imageView = new ImageView(mContext); 
       imageView.setLayoutParams(new GridView.LayoutParams(150, 150)); 
       imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
       //imageView.setPadding(8, 8, 8, 8); 
      } else { 
       imageView = (ImageView) convertView; 
      } 

      imageView.setImageResource(restLogoIDs.get(position)); 
      return imageView; 
    } 
    // references to our images 
} 

문제는이 경우

답변

0

내가 모르는 너희들을 주셔서 감사합니다,하지만 난 당신이 딥와 SP를 사용하는 것이 좋습니다 리소스 및 글꼴 각각에 대해. 동일한 내용에 대해서는 here을 참조하십시오.