2012-06-20 13 views
13

Ich bin ein neuer Benutzer hier und arbeiten Android App, die eine benutzerdefinierte Bildlaufansicht (siehe unten Link) anfordert. Es ist einem Gridview sehr ähnlich, außer dem ersten Bild. Ich habe versucht, eine große Bildansicht mit Gridview hinzuzufügen. Aber es scheitert. Hat jemand einen Vorschlag?Größeres Bild für das erste Element der Gridview Android

enter image description here

Antwort

9

ich Räude folgende Bild erhalten den Code unten verwenden: enter image description here

ich den Code zu diesem blog:

// please check this part. 
      @Override 
      public View getView(int arg0, View arg1, ViewGroup arg2) { 
       ImageView imageView; 
       if(arg1==null){ 
        imageView = new ImageView(DemoGridViewActivity.this){ 
         @Override 
         protected void onMeasure(int widthMeasureSpec, 
           int heightMeasureSpec) { 
          super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
          setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); 
         } 
        }; 
       }else{ 
        imageView = (ImageView) arg1; 
       } 

       imageView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); 
       imageView.setBackgroundColor(Color.BLUE); 
       imageView.setScaleType(ScaleType.FIT_XY); 
       Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
//according to the position return proper imageview with bitmap 
//for case 0 - top-left part 
//for case 1 - top-right 
//for case 5 - bottom-left 
//for case 6 - bottom-right 


       switch(arg0){ 
       case 0: 
        imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth()/2, bitmap.getHeight()/2)); 
        imageView.setBackgroundColor(Color.RED); 
        return imageView; 
       case 1: 
        imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, 0, bitmap.getWidth()/2, bitmap.getHeight()/2)); 
        imageView.setBackgroundColor(Color.GREEN); 
        return imageView; 
       case 5: 
        imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2)); 
        imageView.setBackgroundColor(Color.YELLOW); 
        return imageView; 
       case 6: 
        imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2)); 
        imageView.setBackgroundColor(Color.MAGENTA); 
        return imageView; 
       default: 
        imageView.setImageResource(R.drawable.ic_launcher); 
        return imageView; 
       } 
      } 

     } 
    } 


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

     <GridView 
      android:id="@+id/gridView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:numColumns="5" > 
     </GridView> 

</LinearLayout> 
+1

vermeiden Entsendung voll funktions Anwendungen zu bewegen, halten Sie sich an Fragmente, es ist effektiver, einen Punkt zu machen. – JoxTraex

+0

Ich habe einen Blog http://sudarnimalan.blogspot.sg/2012/06/android-bigger-image-for-first-item-of.html erstellt, um dies zu erklären. 1. Überprüfen Sie die getView-Methode, 2. überprüfen Sie Schalter (arg0), wobei im Fall 0, Fall 1, Fall 5 und Fall 6 den oberen linken, oberen rechten, unteren linken, unteren rechten Teil der Bitmap setzen . –

+0

Wie kann ich ein TextView zwischen zwei Gridview-Elementen hinzufügen, die Sie mit dem ImageView erstellt haben? – ClarkXP

Verwandte Themen