自定义GridView适配器更改图像可见性状态

时间:2016-07-07 09:41:36

标签: android android-layout gridview

我有一个自定义gridView,在里面我有一个相对布局的两个图像。现在,当我点击gridView时,我想要改变我的图像的可见性。

MainActivity:

public class Main extends Fragment implements OnMapReadyCallback{
GridView gridview,video_gridview;
GridViewAdapter adapter;
View v;
public Main() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.activity_main, 
      container, false);

    gridview = (GridView)v.findViewById(R.id.sub_notify_gridView);
    gridview.setNumColumns(3);
    adapter = new GridViewAdapter(getActivity(),FilePathStrings,
    FileNameStrings,Image_Status,time);
    gridview.setAdapter(adapter);

    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, final int 
    position, long id) {
            //here i need to know which image has been clicked
        }
    });
    return v;
}

MainActivity布局:

<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight=".35"
    android:id="@+id/sub_notify_gridView">
    <!--<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/gridViewImageid"/>-->

</GridView>

Cusotm GridView适配器:

public class GridViewAdapter extends BaseAdapter {

// Declare variables
private Activity context;
private String[] filepath;
private String[] imageStatus;
private String Imgtime;
String[] separated;

private static LayoutInflater inflater = null;

public GridViewAdapter(FragmentActivity activity, String[] fpath, String[] fname, String[] image_status, String time) {
    context =  activity;
    filepath = fpath;
    imageStatus = image_status;
    Imgtime = time;
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount() {
    return filepath.length;
}

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

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

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;

    if (convertView == null)
        vi = inflater.inflate(R.layout.gridview_item, null);
    //TextView text = (TextView) vi.findViewById(R.id.text);
    final ImageView image = (ImageView) vi.findViewById(R.id.image);
    ImageView upload_image = (ImageView) vi.findViewById(R.id.upload_image);
    TextView time = (TextView) vi.findViewById(R.id.textView);
    time.setText(Imgtime);
    image.setScaleType(ImageView.ScaleType.FIT_XY);
    image.setPadding(5, 3, 5, 2); //itrb
    //text.setText(filename[position]);

    Bitmap ThumbImage =ThumbnailUtils.extractThumbnail
    (BitmapFactory.decodeFile(filepath[position]),
            128, 128);
    if(imageStatus[position].equals("0")){
        upload_image.setVisibility(View.VISIBLE);
    }
    if (filepath[position] == null){
        image.setImageResource(R.drawable.imageicon);
    }
    else{
        if (position > 4){
            image.setImageBitmap(ThumbImage);
        }
        else{
            image.setImageBitmap(ThumbImage);
        }
    }
    return vi;
}

GridView_item布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:custom="http://schemas.android.com/tools"
android:padding="5dip">

<ImageView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_alignBottom="@+id/image"
    android:layout_alignRight="@+id/image"
    android:layout_alignEnd="@+id/image"
    android:paddingRight="5dp"
    android:paddingBottom="1.5dp"
    android:id="@+id/textView" />
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingRight="5dp"
    android:paddingBottom="1.5dp"
    android:id="@+id/upload_image"
    android:visibility="gone"
    android:src="@drawable/accept_icon"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

</RelativeLayout>

0 个答案:

没有答案