如何使用Intent获取外部图像并设置为壁纸
How to use Intent to get external image and set as wallpaper
我使用 intent 打开用户 phone 的图库,现在我需要将 select 编辑的图像设置为我 activity.or 的墙纸 将图像设置为 Activity.not 上的 ImageView ] 设为phone的壁纸。
有人可以帮我吗?
这是我到目前为止使用的代码。我可以 select image.but 之后什么也没有发生。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button chooseImg=(Button) findViewById(R.id.btnChooseImg);
chooseImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent img=new Intent();
img.setType("image/*");
img.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser
(img, "Select Picture"),SELECT_PICTURE);
Object tag=v.getTag();
Integer rId=(Integer) tag;
img.putExtra("bgImage", rId);
try{
imgLayout=(ImageView) findViewById(R.id.bgImg1);
int imgId=img.getExtras().getInt("bgImage");
imgLayout.setBackgroundResource(imgId);
}
catch(Exception e){
Toast.makeText(getApplicationContext(), "nope", Toast.LENGTH_SHORT).show();
}
}
});
}
像这样实现 onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_PICTURE&& resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
// Log.d(TAG, String.valueOf(bitmap));
ImageView imageView = (ImageView) findViewById(R.id.yourimageview);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
要设置按钮背景,请像这样创建一个 BitmapDrawable
BitmapDrawable bdrawable = new BitmapDrawable(context.getResources(),bitmap);
对于布局,您可以使用 setBackgroundDrawable
方法
我使用 intent 打开用户 phone 的图库,现在我需要将 select 编辑的图像设置为我 activity.or 的墙纸 将图像设置为 Activity.not 上的 ImageView ] 设为phone的壁纸。 有人可以帮我吗? 这是我到目前为止使用的代码。我可以 select image.but 之后什么也没有发生。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button chooseImg=(Button) findViewById(R.id.btnChooseImg);
chooseImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent img=new Intent();
img.setType("image/*");
img.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser
(img, "Select Picture"),SELECT_PICTURE);
Object tag=v.getTag();
Integer rId=(Integer) tag;
img.putExtra("bgImage", rId);
try{
imgLayout=(ImageView) findViewById(R.id.bgImg1);
int imgId=img.getExtras().getInt("bgImage");
imgLayout.setBackgroundResource(imgId);
}
catch(Exception e){
Toast.makeText(getApplicationContext(), "nope", Toast.LENGTH_SHORT).show();
}
}
});
}
像这样实现 onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_PICTURE&& resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
// Log.d(TAG, String.valueOf(bitmap));
ImageView imageView = (ImageView) findViewById(R.id.yourimageview);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
要设置按钮背景,请像这样创建一个 BitmapDrawable
BitmapDrawable bdrawable = new BitmapDrawable(context.getResources(),bitmap);
对于布局,您可以使用 setBackgroundDrawable
方法