2012-06-20 40 views
13

Tôi là người dùng mới ở đây và ứng dụng android hoạt động yêu cầu chế độ xem cuộn tùy chỉnh (được hiển thị dưới dạng liên kết bên dưới). Nó rất giống với GridView ngoại trừ hình ảnh đầu tiên. Tôi đã cố gắng sử dụng thêm một lần xem hình ảnh lớn cùng với chế độ xem lưới. Nhưng nó không thành công. Bất cứ ai có bất cứ đề nghị?Ảnh lớn hơn cho mục đầu tiên của android GridView

enter image description here

Trả lời

9

tôi mange để có được sau hình ảnh bằng cách sử dụng mã bên dưới: enter image description here

Tôi di chuyển mã này 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

Tránh đăng các ứng dụng làm việc đầy đủ, dính vào mảnh vỡ, hiệu quả hơn khi tạo ra một điểm. – JoxTraex

+0

Tôi đã tạo một blog http://sudarnimalan.blogspot.sg/2012/06/android-bigger-image-for-first-item-of.html để giải thích điều này. 1. cần kiểm tra phương thức getView, 2. check switch (arg0) trong trường hợp 0, case 1, case 5 và case 6 thiết lập phần trên cùng bên trái, trên cùng bên phải, dưới cùng bên trái, phần dưới cùng bên phải của bitmap . –

+0

Làm cách nào để thêm một TextView giữa hai mục xem lưới như bạn đã thực hiện với ImageView? – ClarkXP

Các vấn đề liên quan