2011-08-05 6 views
0

私のコードに問題があります(私の望むように動作しません)。私は一連の画像を持っています(画像の数は変わるかもしれません)。私はそれらをグリッド表示にします。 columnWidthの= "150ピクセル" のandroid:layout_height = "fill_parent" それだけで画面の半分を埋め、その Androidは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です。しかし800pxのときはうまく動作します。 システムは動的であるため、インストールするたびにXMLを再生したくありません。 私はこれを支援し、下記念のために私のjavaファイルである必要があります。

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 
} 

問題が、この場合、私は知らないが、私はあなたがディップとSPを使用することをお勧めみんな

答えて

0

ありがとうリソースとフォントのそれぞれについて。同じことについては、hereを参照してください。

関連する問題