Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 全屏显示所选网格图像,其代码需要位于MainActivity类中,如下所示_Java_Android_Android Layout_Android Intent_Android Widget - Fatal编程技术网

Java 全屏显示所选网格图像,其代码需要位于MainActivity类中,如下所示

Java 全屏显示所选网格图像,其代码需要位于MainActivity类中,如下所示,java,android,android-layout,android-intent,android-widget,Java,Android,Android Layout,Android Intent,Android Widget,问题是我想在gridview上显示项目并全屏显示项目。我想包括任何代码以全屏显示gridview项目,使其与MainActivity处于同一类中。我不希望我的代码处于新类中。如果要在同一活动上加载全屏,则应使用弹出窗口用于显示图像 或者,最好的解决方案是在主活动上实现onItemClickListener,然后单击“按位置获取项目”,并将图像url传递给下一个活动以将其加载到那里 我将给您我的代码,根据您的需要编辑此代码 |主要活动 public class MainActivity exten

问题是我想在gridview上显示项目并全屏显示项目。我想包括任何代码以全屏显示gridview项目,使其与MainActivity处于同一类中。我不希望我的代码处于新类中。

如果要在同一活动上加载全屏,则应使用弹出窗口用于显示图像


或者,最好的解决方案是在主活动上实现onItemClickListener,然后单击“按位置获取项目”,并将图像url传递给下一个活动以将其加载到那里

我将给您我的代码,根据您的需要编辑此代码 |主要活动

public class MainActivity extends Activity {

GridView gridView;
LazyAdapter adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    gridView = (GridView) findViewById(R.id.grid_view);
    adapter=new LazyAdapter(this, mStrings);
    gridView.setAdapter(adapter);

    Button b=(Button)findViewById(R.id.button2);
    b.setOnClickListener(listener);
}

@Override
public void onDestroy()
{
    adapter.imageLoader.stopThread();
    gridView.setAdapter(null);
    super.onDestroy();
}


public OnClickListener listener=new OnClickListener(){
    public void onClick(View arg0) {
        adapter.imageLoader.clearCache();
        adapter.notifyDataSetChanged();
    }
};



private String[] mStrings={
        "http://www.globaltvbc.com/uploadedImages/Global_News/Content/Wallpaper.jpeg",
        "http://cdn.windows7themes.net/themes/halo-3-hd-wallpaper.jpg",
   };
}
GridViewAdapter扩展BaseAdapter

package com.mypack;

public class RowItem4 {
    private String imageId;

    public String getImageId() {
        return imageId;
    }

    public void setImageId(String imageId) {
        this.imageId = imageId;
    }

    public RowItem4(String mStringArray) {
        this.imageId = mStringArray;

    }

}
package com.mypack;
导入java.io.IOException;
导入java.io.InputStream;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.URLConnection;
导入java.util.List;
导入android.app.Activity;
导入android.content.Context;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.graphics.drawable.drawable;
导入android.os.AsyncTask;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.ImageView;
公共类GridViewAdapter扩展了BaseAdapter{
语境;
列出项目;
私人持票人;
私人提款权;
公共GridViewAdapter(上下文,列表行项){
超级();
this.context=上下文;
this.rowItems=rowItems;
}
私有类视窗持有者{
图像视图图像视图;
公共职位;
}
public int getCount(){
//TODO自动生成的方法存根
返回rowItems.size();
}
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回行项目。获取(位置);
}
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回rowItems.indexOf(getItem(position));
}
公共视图getView(int位置、视图转换视图、视图组父视图){
holder=null;
LayoutInflater mInflater=(LayoutInflater)
context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
if(convertView==null){
convertView=mInflater.flate(R.layout.grid\u image\u视图,空);
holder=新的ViewHolder();
holder.imageView=(imageView)convertView.findViewById(R.id.grid\u item\u image);
convertView.setTag(支架);
}
否则{
holder=(ViewHolder)convertView.getTag();
}
RowItem4 rowItem=(RowItem4)getItem(位置);
holder.position=位置;
GetXMLTask task=新的GetXMLTask(职位、持有者);
task.execute(新字符串[]{”“+rowItem.getImageId()});
//支架。imageView。可设置ImageDrawable(d);
返回视图;
}
/*私有可绘制LoadImageFromURL(字符串url)
{
尝试
{
InputStream为=(InputStream)新URL(URL).getContent();
d=可绘制的.createFromStream(是“src”);
返回d;
}捕获(例外e){
系统输出打印ln(e);
返回null;
}
}*/
私有类GetXMLTask扩展了AsyncTask{
私人投资;
私人持票人;
公共GetXMLTask(int位置,视图持有者){
位置=位置;
mHolder=持有人;
}
受保护位图doInBackground(字符串…URL){
位图映射=空;
for(字符串url:url){
map=下载图像(url);
}
返回图;
}
//设置doInBackground返回的位图
受保护的void onPostExecute(位图结果){
if(mHolder.position==mPosition)
{
mHolder.imageView.setImageBitmap(结果);
}
}
//从InputStream创建位图并返回它
私有位图下载图像(字符串url){
位图=空;
InputStream=null;
BitmapFactory.Options bmOptions=新的BitmapFactory.Options();
bmOptions.inSampleSize=1;
试一试{
流=getHttpConnection(url);
位图=位图工厂。
解码流(流,空,bmOptions);
stream.close();
}捕获(IOE1异常){
e1.printStackTrace();
}
返回位图;
}
//建立HttpURLConnection并返回InputStream
私有InputStream getHttpConnection(字符串urlString)
抛出IOException{
InputStream=null;
URL=新URL(URL字符串);
URLConnection=url.openConnection();
试一试{
HttpURLConnection httpConnection=(HttpURLConnection)连接;
setRequestMethod(“GET”);
httpConnection.connect();
if(httpConnection.getResponseCode()==HttpURLConnection.HTTP\u确定){
stream=httpConnection.getInputStream();
}
}捕获(例外情况除外){
例如printStackTrace();
}
回流;
}
}
}

如果要在第二个活动中加载图像,则需要使用此代码;如果要在同一个活动中加载图像,则只需在主活动中添加用于添加弹出窗口的代码。我想现在已经很清楚了

公共类MainActivity扩展了活动实现MClickListener{}。。。。然后添加未实现的方法,它看起来像………..public void onItemClick(AdapterView AdapterView,View View,int position,long id){Intent i=newintent(getApplicationContext(),your_Activity.class);i.putExtra(“image”,your_数组[posi
package com.mypack;

public class RowItem4 {
    private String imageId;

    public String getImageId() {
        return imageId;
    }

    public void setImageId(String imageId) {
        this.imageId = imageId;
    }

    public RowItem4(String mStringArray) {
        this.imageId = mStringArray;

    }

}
package com.mypack;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;





import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class GridViewAdapter extends BaseAdapter {



    Context context;
    List<RowItem4> rowItems;
    private ViewHolder holder;
    private Drawable d;

    public GridViewAdapter(Context context, List<RowItem4> rowItems) {
        super();
        this.context = context;
        this.rowItems = rowItems;
    }

    private class ViewHolder {
        ImageView imageView;
        public int position;


    }

    public int getCount() {
        // TODO Auto-generated method stub
        return rowItems.size();
    }

    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return rowItems.get(position);
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return rowItems.indexOf(getItem(position));
    }

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

        holder = null;

        LayoutInflater mInflater = (LayoutInflater)
            context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.grid_image_view, null);
            holder = new ViewHolder();


            holder.imageView = (ImageView) convertView.findViewById(R.id.grid_item_image);

            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder) convertView.getTag();
        }

        RowItem4 rowItem = (RowItem4) getItem(position);

        holder.position = position;
        GetXMLTask task = new GetXMLTask(position,holder);

        task.execute(new String[] { ""+rowItem.getImageId() });


        //holder.imageView.setImageDrawable(d);
        return convertView;
    }

    /*private Drawable LoadImageFromURL(String url)
    {
    try
    {
    InputStream is = (InputStream) new URL(url).getContent();
    d = Drawable.createFromStream(is, "src");
    return d;
    }catch (Exception e) {
    System.out.println(e);
    return null;
    }
    }*/


    private class GetXMLTask extends AsyncTask<String, Void, Bitmap> {
        private int mPosition;
        private ViewHolder mHolder;
        public GetXMLTask(int position, ViewHolder holder) {
            mPosition = position;
            mHolder = holder;
        }

        protected Bitmap doInBackground(String... urls) {
            Bitmap map = null;
            for (String url : urls) {
                map = downloadImage(url);
            }
            return map;
        }

        // Sets the Bitmap returned by doInBackground
        protected void onPostExecute(Bitmap result) {
            if (mHolder.position == mPosition)
            {
            mHolder.imageView.setImageBitmap(result);
        }
        }

        // Creates Bitmap from InputStream and returns it
        private Bitmap downloadImage(String url) {
            Bitmap bitmap = null;
            InputStream stream = null;
            BitmapFactory.Options bmOptions = new BitmapFactory.Options();
            bmOptions.inSampleSize = 1;

            try {
                stream = getHttpConnection(url);
                bitmap = BitmapFactory.
                        decodeStream(stream, null, bmOptions);
                stream.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            return bitmap;
        }

        // Makes HttpURLConnection and returns InputStream
        private InputStream getHttpConnection(String urlString)
                throws IOException {
            InputStream stream = null;
            URL url = new URL(urlString);
            URLConnection connection = url.openConnection();

            try {
                HttpURLConnection httpConnection = (HttpURLConnection) connection;
                httpConnection.setRequestMethod("GET");
                httpConnection.connect();

                if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    stream = httpConnection.getInputStream();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return stream;
        }
    }
}