2012-06-20 3 views
13

Burada yeni kullanıcıyım ve özel bir kaydırma görünümü (aşağıdaki bağlantıyla gösterildiği gibi) isteyen android uygulaması var. İlk görüntü dışında çok benzer bir ızgara görünümüdür. Gridview ile birlikte geniş bir resim görünümü kullanmaya çalıştım. Ama başarısız oluyor. Herhangi bir öneri olan var mı?gridview android'un ilk öğesi için daha büyük resim

enter image description here

cevap

9

Ben aşağıdaki kodu kullanarak görüntüye aşağıdaki almak Uyuz: enter image description here

Ben tam çalışma uygulamalarına gönderme bu 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

kaçının kod taşınacağım, parçaları sopa, Bir noktayı yapmada daha etkilidir. – JoxTraex

+0

Bunu açıklamak için http://sudarnimalan.blogspot.sg/2012/06/android-bigger-image-for-first-item-of.html bir blog hazırladım. 1. getView yöntemini kontrol etmelisiniz, 2. kontrol anahtarını (arg0) kontrol ediniz, burada 0, 1. durumda, 5. durumda ve 6 durumunda, bitmap'in sol üst, sağ-sol, alt-sağ kısımları ayarlanmalıdır. . –

+0

ImageView ile yaptığınız gibi iki kılavuz görünümü arasında bir TextView nasıl ekleyebilirim? – ClarkXP