Android 全屏模式下的图像显示
我已经创建了一个应用程序,其中图像显示在gridview上,我想当我点击下一页全屏显示的特定图像时 我写下了代码,但当我点击图像时,它崩溃了 请有人帮帮我Android 全屏模式下的图像显示,android,Android,我已经创建了一个应用程序,其中图像显示在gridview上,我想当我点击下一页全屏显示的特定图像时 我写下了代码,但当我点击图像时,它崩溃了 请有人帮帮我 public class GridViewActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte
public class GridViewActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
long imageId = (Long) parent.getAdapter().getItem(position);
Intent fullScreenIntent = new Intent(v.getContext(),FullScreenImage.class);
fullScreenIntent.putExtra("Hello",imageId);
startActivity(fullScreenIntent);
}
});
/* gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(GridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});*/
}
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return images.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(images[position]);
return imageView;
}
// references to our images
private Integer[] images = {
R.drawable.bluehills, R.drawable.sample_3,
R.drawable.sample_7, R.drawable.sunset,
R.drawable.waterlilies, R.drawable.winter,
};
}
}
公共类GridViewActivity扩展活动{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView GridView=(GridView)findViewById(R.id.GridView);
setAdapter(新的ImageAdapter(this));
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
long imageId=(long)parent.getAdapter().getItem(位置);
Intent fullScreenIntent=newintent(v.getContext(),FullScreenImage.class);
fullScreenIntent.putExtra(“你好”,imageId);
startActivity(全屏意图);
}
});
/*setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
Toast.makeText(GridViewActivity.this,“+位置,Toast.LENGTH_SHORT.show();
}
});*/
}
公共类ImageAdapter扩展了BaseAdapter{
私有上下文;
公共图像适配器(上下文c){
mContext=c;
}
public int getCount(){
返回图像长度;
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
//为适配器引用的每个项目创建新的ImageView
公共视图getView(int位置、视图转换视图、视图组父视图){
图像视图图像视图;
如果(convertView==null){//如果它没有被回收,初始化一些属性
imageView=新的imageView(mContext);
setLayoutParams(新的GridView.LayoutParams(85,85));
imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
设置填充(8,8,8,8);
}否则{
imageView=(imageView)convertView;
}
setImageResource(图像[位置]);
返回图像视图;
}
//参考我们的图像
私有整数[]图像={
R.drawable.bluehills,R.drawable.sample_3,
R.drawable.sample_7,R.drawable.sunset,
可抽的睡莲,可抽的冬天,
};
}
}
请尝试此代码
package com.image;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ImageActivity extends Activity {
/** Called when the activity is first created. */
Integer[] mImageIds = { R.drawable.a, R.drawable.abc,
R.drawable.fd, R.drawable.ft, R.drawable.gh, R.drawable.nat
};
ImageView im;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Gallery g = (Gallery) findViewById(R.id.gallery1);
im = (ImageView) findViewById(R.id.imageView1);
g.setAdapter(new ImageAdapter(this));
getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN );
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
Toast.makeText(ImageActivity.this, "" + position,Toast.LENGTH_SHORT).show();
im.setImageResource(mImageIds[position]);
}
});
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery);
mGalleryItemBackground = a.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground, 0);
a.recycle();
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setLayoutParams(new Gallery.LayoutParams(150, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setBackgroundResource(mGalleryItemBackground);
i.bringToFront();
return i;
}
}
}
package.com.image;
导入android.app.Activity;
导入android.content.Context;
导入android.content.res.TypedArray;
导入android.os.Bundle;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.WindowManager;
导入android.widget.AdapterView;
导入android.widget.BaseAdapter;
导入android.widget.Gallery;
导入android.widget.ImageView;
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
公共类ImageActivity扩展了活动{
/**在首次创建活动时调用*/
整数[]mImageIds={R.drawable.a,R.drawable.abc,
R.drawable.fd,R.drawable.ft,R.drawable.gh,R.drawable.nat
};
ImageView im;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
画廊g=(画廊)findViewById(R.id.gallery1);
im=(ImageView)findViewById(R.id.imageView1);
g、 setAdapter(新的ImageAdapter(this));
getWindow().addFlags(WindowManager.LayoutParams.FLAG_全屏);
g、 setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
Toast.makeText(ImageActivity.this,“+”位置,Toast.LENGTH_SHORT.show();
im.setImageResource(mimageId[position]);
}
});
}
公共类ImageAdapter扩展了BaseAdapter{
int mGalleryItemBackground;
私有上下文;
公共图像适配器(上下文c){
mContext=c;
TypedArray a=获得的StyledAttributes(R.styleable.HelloGallery);
mGalleryItemBackground=a.getResourceId(R.styleable.HelloGallery\u android\u galleryItemBackground,0);
a、 回收();
}
public int getCount(){
返回mImageIds.length;
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
ImageView i=新的ImageView(mContext);
i、 setImageResource(mimageId[位置]);
i、 setLayoutParams(新图库.LayoutParams(150100));
i、 setScaleType(ImageView.ScaleType.FIT_XY);
i、 挫折背景资源(mGalleryItemBackground);
i、 布林托夫隆();
返回i;
}
}
}
帮助我们帮助您。将遇到问题的代码与堆栈跟踪一起发布。否则,我们将无法帮助。粘贴FullScreenImage.classLogcat输出的代码以获得所需的异常。还有一件事要记住,当你在发布代码和logcat输出时出现异常。这个类相对来说还可以,问题在FullScreenImage中。类谢谢我已经发布了这两个类,请检查一下,我错了。谢谢,但它不起作用,我在这里使用了GridView不想使用gallaery