package com.video.browse;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.video.browse.adapter.VideoAdapter;
import com.video.browse.ui.VideoGridView;
import com.video.browse.util.Constant;
import com.video.browse.util.FileFind;
import com.video.browse.util.FileVoideInfo;
import com.video.browse.util.MediaFormat;
import android.R.bool;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.app.Activity;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
List<FileVoideInfo> list = new ArrayList<FileVoideInfo>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (FileFind.isFileName(Constant.MOVIE_PATH_SD)) {
File filePath = new File(Constant.FILE_PATH);
list = FileFind.getFileList(filePath, true);
Log.i(TAG, "list size:"+list.size());
}
final VideoGridView gridview = (VideoGridView) findViewById(R.id.gridview);
VideoAdapter mImageAdapter = new VideoAdapter(this,list);
gridview.setAdapter(mImageAdapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "" + position,Toast.LENGTH_SHORT).show();// 显示信息;
}
});
gridview.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Log.d("zonesView", "onItemSelected");
gridview.setCurrentPosition(arg2);
VideoAdapter zonesImageAdapter = (VideoAdapter) gridview.getAdapter();
zonesImageAdapter.notifyDataSetChanged(arg2);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
@Override
protected void onStart() {
super.onStart();
// new Thread(downloadInfoRun).start();
}
}
package com.video.browse.adapter;
import java.util.ArrayList;
import java.util.List;
import com.video.browse.R;
import com.video.browse.util.FileVoideInfo;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ImageView.ScaleType;
public class VideoAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private static final String TAG = "VideoAdapter";
List<FileVoideInfo> list = new ArrayList<FileVoideInfo>();
private int selected = -1;
public VideoAdapter(Context context,List<FileVoideInfo> list) {
this.mContext = context;
this.list = list;
}
@Override
public int getCount() {
Log.i(TAG,"adapter list size: "+list.size());
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public void notifyDataSetChanged(int id) {
selected = id;
super.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = new ImageView(mContext);
imgView.setLayoutParams(new GridView.LayoutParams(285, 185));
imgView.setPadding(228, 228, 228, 228);
imgView.setBackgroundResource(R.drawable.nba_4);
if (selected == position) {
imgView.setScaleType(ImageView.ScaleType.CENTER_CROP);
Animation testAnim = AnimationUtils.loadAnimation(mContext,R.anim.anim);
imgView.startAnimation(testAnim);
} else {
imgView.setScaleType(ImageView.ScaleType.CENTER);
}
return imgView;
}
}
package com.video.browse.ui;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class VideoGridView extends GridView {
private int position = 0;
public VideoGridView(Context context) {
super(context);
}
public VideoGridView(Context context, AttributeSet attrs) {
super(context, attrs);
setChildrenDrawingOrderEnabled(true);
}
public void setCurrentPosition(int pos) {// 刷新adapter前,在activity中调用这句传入当前选中的item在屏幕中的次序
this.position = pos;
}
@SuppressLint("NewApi")
@Override
protected void setChildrenDrawingOrderEnabled(boolean enabled) {
// TODO Auto-generated method stub
super.setChildrenDrawingOrderEnabled(enabled);
}
@Override
protected int getChildDrawingOrder(int childCount, int i) {
if (i == childCount - 1) {// 这是最后一个需要刷新的item
return position;
}
if (i == position) {// 这是原本要在最后一个刷新的item
return childCount - 1;
}
return i;// 正常次序的item
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <!-- android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" --> <com.video.browse.ui.VideoGridView android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="210dp" android:gravity="center" android:horizontalSpacing="1dp" android:numColumns="auto_fit" android:verticalSpacing="1dp" /> </RelativeLayout>