Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Android 如何在从gridview中选择的图像视图中显示图像。gridview位于警告框中_Android - Fatal编程技术网

Android 如何在从gridview中选择的图像视图中显示图像。gridview位于警告框中

Android 如何在从gridview中选择的图像视图中显示图像。gridview位于警告框中,android,Android,我正在进行一项活动,该活动包含一个可单击的图像视图(标题为“选择您的图像”)。类似于以下内容: setContentView(R.layout.main); ImageView button = (ImageView)findViewById(R.id.categories); button.setClickable(true); 现在,通过单击图像视图,将打开一个弹出窗口/警报,其中包含一个网格视图表单,该表单由我的可绘制文件夹中的图像组成。如下所示: pro

我正在进行一项活动,该活动包含一个可单击的图像视图(标题为“选择您的图像”)。类似于以下内容:

setContentView(R.layout.main);
        ImageView button = (ImageView)findViewById(R.id.categories);
        button.setClickable(true);
现在,通过单击图像视图,将打开一个弹出窗口/警报,其中包含一个网格视图表单,该表单由我的可绘制文件夹中的图像组成。如下所示:

protected Dialog onCreateDialog(int id) {   

        switch(id) {   

        case CATEGORY_ID:   

         AlertDialog.Builder builder;   
            Context mContext = this;   
            LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);   
            View layout = inflater.inflate(R.layout.categorydialog,(ViewGroup) findViewById(R.id.layout_root));   
            GridView gridview = (GridView)layout.findViewById(R.id.gridview);   
            gridview.setAdapter(new ImageAdapter(this));   

            gridview.setOnItemClickListener(new OnItemClickListener()   
            {
                public void onItemClick(AdapterView<?> parent, View v,int position, long id) {   
                 Toast.makeText(v.getContext(), "Position is "+position, 3000).show();
                 }   
            });

            ImageView close = (ImageView) layout.findViewById(R.id.close);
            close.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){
              dialog.dismiss();
            }
            });

            builder = new AlertDialog.Builder(mContext);   
            builder.setView(layout);   
            dialog = builder.create();   
            break;   
        default:   
            dialog = null;   
        }   
        return dialog;   
    }
protecteddialog onCreateDialog(int-id){
开关(id){
案件类别编号:
AlertDialog.Builder;
Context mContext=这个;
LayoutInflater充气器=(LayoutInflater)mContext.getSystemService(布局充气器服务);
视图布局=充气器。充气(R.layout.categorydialog,(视图组)findViewById(R.id.layout_root));
GridView GridView=(GridView)layout.findviewbyd(R.id.GridView);
setAdapter(新的ImageAdapter(this));
setOnItemClickListener(新的OnItemClickListener()
{
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
Toast.makeText(v.getContext(),“Position is”+Position,3000.show();
}   
});
ImageView close=(ImageView)layout.findviewbyd(R.id.close);
close.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
dialog.dismise();
}
});
builder=新建AlertDialog.builder(mContext);
builder.setView(布局);
dialog=builder.create();
打破
违约:
dialog=null;
}   
返回对话框;
}
我可以点击这些图片

问题:
我想从这些图像中选择一个,并在用户单击的图像视图中进行设置。 任何建议!
谢谢

ImageView按钮
转换为字段

public class YourActivityName extends Activity
{
    private ImageView mImageView;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mImageView = (ImageView)findViewById(R.id.categories);
        mImageView.setClickable(true);
    }

}
然后在gridview的onItemClick中,您可以调用
mImageView.setImageBitmap
(或
setImageDrawable
。您需要的
setImage..()
方法中的任何一种)

gridview.setOnItemClickListener(新的OnItemClickListener()
{
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
位图bmp=…;//以某种方式在该位置获取图像
设置图像位图(bmp);
}   
});

您需要在单击的位置获取图像,但我将留给您,因为我不知道您的
ImageAdapter
如何工作。

此外,这取决于您在同一类中拥有对话框和mImageView。不必是字段。可以通过id找到imageview。为了简单起见,我使用字段,但@Ian是对的,您可以简单地执行((imageview)findViewById(R.id.categories))。setImageBitmap(bmp);设置图像时,感谢您的回答!现在我的方向是正确的。我已经这样使用了您的代码:Bitmap bmp=Bitmap.createBitmap(v.getWidth(),v.getHeight(),Bitmap.Config.RGB_565);设置图像位图(bmp);这将创建一个空位图,可以正常工作。当您设置该值时,它将不显示任何内容(因为它是空的),因此它看起来不起作用。我会检查适配器中是否有getImage(position)方法或类似的方法。如果没有,可以尝试gridview.getAdapter().getItem(位置);其中一个可能直接获得位图。如果没有看到适配器代码,我真的无法确定。此外,如果这是您问题的解决方案,请将其标记为该解决方案。
gridview.setOnItemClickListener(new OnItemClickListener()   
{
    public void onItemClick(AdapterView<?> parent, View v,int position, long id) {   
          Bitmap bmp = ...; //get your image at this position somehow
          mImageView.setImageBitmap(bmp);
    }   
});