Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
从ImageView获取resourceId-Android_Android - Fatal编程技术网

从ImageView获取resourceId-Android

从ImageView获取resourceId-Android,android,Android,我的应用程序所做的是在屏幕上显示一幅图像,当用户单击“下一步”或“上一步”按钮时,它会变成另一幅图像。它让他们可以选择将该图片设置为壁纸或下载图像。我需要该应用程序能够检测屏幕上的图像,以便它得到正确的图像下载。这是我的密码: package com.dogger20011.mcwallpapers; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android

我的应用程序所做的是在屏幕上显示一幅图像,当用户单击“下一步”或“上一步”按钮时,它会变成另一幅图像。它让他们可以选择将该图片设置为壁纸或下载图像。我需要该应用程序能够检测屏幕上的图像,以便它得到正确的图像下载。这是我的密码:

package com.dogger20011.mcwallpapers;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class Portrait extends Activity {
    private ImageView hImageViewSemafor;
    private Button hButton;
    private Button hButton2;
    FileOutputStream outStream;

    int currentImage = 0;
    int[] images = { R.drawable.b1, R.drawable.b2, R.drawable.b3, R.drawable.background1 };
    int[] imagesb = { R.drawable.background1, R.drawable.b3, R.drawable.b2, R.drawable.b1 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.portrait);

        hImageViewSemafor = (ImageView)findViewById(R.id.imageView1);
        hButton = (Button) findViewById(R.id.button2);
        hButton.setOnClickListener(aButtonChangeImageListener);

        hImageViewSemafor = (ImageView)findViewById(R.id.imageView1);
        hButton2 = (Button) findViewById(R.id.button1);
        hButton2.setOnClickListener(bButtonChangeImageListener);
    }
    View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

        public void onClick(View v) {

            currentImage++;
            currentImage = currentImage % images.length;

            hImageViewSemafor.setImageResource(images[currentImage]);

        }
    };
    View.OnClickListener bButtonChangeImageListener = new OnClickListener() {

        public void onClick(View v) {

            currentImage++;
            currentImage = currentImage % imagesb.length;

            hImageViewSemafor.setImageResource(imagesb[currentImage]);

        }
    };

    public void myClickHandler(View arg0){      
        WallpaperManager myWallpaperManager 
        = WallpaperManager.getInstance(getApplicationContext());
        try {
            myWallpaperManager.setResource(CURRENT IMAGE);
        } catch (IOException e) {

            e.printStackTrace();
        }
    }
    public void myClickHandler2(View v) throws IOException{
        Bitmap bm = BitmapFactory.decodeResource( getResources(), CURRENT IMAGE);
        File file = new File(Environment.getExternalStorageDirectory() + "/Download/Background1.jpg");
        outStream = new FileOutputStream(file);
        bm.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        outStream.flush();
        outStream.close();
    }

}

通过
hImageViewSemafor.setImageResource()
在您的
ImageView
hImageViewSemafor上设置图像资源时,只需将一些类成员变量设置为您放入hImageViewSemafor中的资源id。然后使用该变量的值来确定屏幕上显示的图像

private int currentImageResId;

View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % images.length;

        hImageViewSemafor.setImageResource(images[currentImage]);
        currentImageResId = images[currentImage];
    }
};

View.OnClickListener bButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % imagesb.length;

        hImageViewSemafor.setImageResource(imagesb[currentImage]);
        currentImageResId = images[currentImage];
    }
};

public void myClickHandler(View arg0){      
    WallpaperManager myWallpaperManager 
    = WallpaperManager.getInstance(getApplicationContext());
    try {
        myWallpaperManager.setResource(currentImageResId);
    } catch (IOException e) {

        e.printStackTrace();
    }
}

通过
hImageViewSemafor.setImageResource()
在您的
ImageView
hImageViewSemafor上设置图像资源时,只需将一些类成员变量设置为您放入hImageViewSemafor中的资源id。然后使用该变量的值来确定屏幕上显示的图像

private int currentImageResId;

View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % images.length;

        hImageViewSemafor.setImageResource(images[currentImage]);
        currentImageResId = images[currentImage];
    }
};

View.OnClickListener bButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % imagesb.length;

        hImageViewSemafor.setImageResource(imagesb[currentImage]);
        currentImageResId = images[currentImage];
    }
};

public void myClickHandler(View arg0){      
    WallpaperManager myWallpaperManager 
    = WallpaperManager.getInstance(getApplicationContext());
    try {
        myWallpaperManager.setResource(currentImageResId);
    } catch (IOException e) {

        e.printStackTrace();
    }
}

因为没有get resource id int
ImageView
class,所以可以使用
setTag(Object Object)
保存资源id

View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % images.length;

        hImageViewSemafor.setImageResource(images[currentImage]);
        hImageViewSemafor.setTag(images[currentImage]);
    }
};


public void myClickHandler(View arg0){      
    WallpaperManager myWallpaperManager 
    = WallpaperManager.getInstance(getApplicationContext());
    try {
        myWallpaperManager.setResource((Integer)hImageViewSemafor.getTag());
    } catch (IOException e) {

        e.printStackTrace();
    }
}

因为没有get resource id int
ImageView
class,所以可以使用
setTag(Object Object)
保存资源id

View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

    public void onClick(View v) {

        currentImage++;
        currentImage = currentImage % images.length;

        hImageViewSemafor.setImageResource(images[currentImage]);
        hImageViewSemafor.setTag(images[currentImage]);
    }
};


public void myClickHandler(View arg0){      
    WallpaperManager myWallpaperManager 
    = WallpaperManager.getInstance(getApplicationContext());
    try {
        myWallpaperManager.setResource((Integer)hImageViewSemafor.getTag());
    } catch (IOException e) {

        e.printStackTrace();
    }
}

你的代码有哪些不起作用?你的代码有哪些不起作用?