我目前能够使用网址字符串填充gridview
并拥有一个onClick()
监听器,可以全屏显示gridview
中的图片。
MainActivity
public class MainActivity extends Activity {
GridView grid;
LazyAdapter adapter;
public static ArrayList<String> arrayList = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//list=(ListView)findViewById(R.id.list);
grid = (GridView) findViewById(R.id.grid);
try {
new myAsyncTask(this).execute(arrayList).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
for(int i=0;i<arrayList.size(); i++){
Log.v("onCreate: ", arrayList.get(i));
}
String[]myArray = new String[arrayList.size()];
myArray = arrayList.toArray(myArray);
for(int i=0; i<arrayList.size();i++){
Log.v("myArray", myArray[i]);
}
adapter=new LazyAdapter(this, myArray);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Log.v("Picture # ", String.valueOf(i));
Log.v("fsdf", adapterView.getItemAtPosition(i).toString());
Intent intent = new Intent(getApplicationContext(), FullScreenImage.class);
intent.putExtra("id", imageUrl);
startActivity(intent);
}
});
FullScreenImage
public class FullScreenImage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.full_screen);
Intent intent = getIntent();
//int position = intent.getExtras().getInt("id");
String position = intent.getExtras().getString("id");
Log.v("FSI==", position);
ImageView im = (ImageView) findViewById(R.id.full_image_view);
ImageLoader imLo = new ImageLoader(this.getApplicationContext());
imLo.DisplayImage(position, im);
}
}
ImageLoader类中的DisplayImage
public void DisplayImage(String url, ImageView imageView)
{
imageViews.put(imageView, url);
Bitmap bitmap=memoryCache.get(url);
if(bitmap!=null)
imageView.setImageBitmap(bitmap);
else
{
queuePhoto(url, imageView);
imageView.setImageResource(stub_id);
}
}
activity_main.xml中
<GridView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/grid"
android:numColumns="2"
android:horizontalSpacing="6dip"
android:verticalSpacing="6dip"
/>
item.xml
<ImageView
android:id="@+id/image"
android:layout_width="150dip"
android:layout_height="150dip"
android:src="@drawable/ic_launcher"
android:scaleType="centerCrop"/>
full_screen.xml
<ImageView android:id="@+id/full_image_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
我现在想做什么..
单击图像后,用户应该可以在图像之间滑动,而不必返回gridview
选择另一个图像。
(我还希望在某些时候添加双指缩放,共享功能)
显然, DisplayImage
类中方法 ImageLoader
的参数需要将一个字符串Url与{{{{{{ 1}}因为这是我用来填充ImageView
,
我整天都在玩GridView
,但没有取得多大成功。
所以,我希望有人能够就如何最好地实现我想做的事情提供一些指导。如果Fragment
是要走的路:
fragment
类传递到FullScreenImage
类的哪些信息,然后在我当前方法需要{{1}的情况下显示图像的最佳方式是什么?参数而不是寻呼机?希望这对你的时间和回应非常有意义并且非常感谢, 亲切的问候。