欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

android 设置背景

更新时间: 2014-01-05 02:35:39 责任编辑: Author_N1

 

android 设置背景 求救
 我说的详细一点: 在主界面时,我设置了一个更换主界面的按钮,的确通过setBackgroundResource(R.drawable.bgimg2);可以成功设置背景,但是现在我有一个需求是:打开手机sd卡中的图片显示在另一个activity中,用户经过长按图片,弹出对话框:设置为主界面背景,但是通过setBackgroundResource(R.drawable.bgimg2);这句代码无法修改主界面的背景,请问该如何解决?
--参考方法--
R.drawable.bgimg2应用的是工程drawable中的资源,这是android的一个资源映射,你要现实sd卡中的图片,只能讲图片加载为drawabel然后通过setBackgroundDrawable来实现
/**
 * 生成图片
 * 
 * @param path
 * @return
 */
public static Bitmap creatBitmap(String path) {
if (path == null 
--参考方法--
 path.equals("")) {
return null;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
try {
Bitmap bitmap = BitmapFactory.decodeFile(path);
RocLog.info("ViewUtil", "@@creatBitmap@@ the is bitmap :" + bitmap);
return bitmap;
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return null;
}

setBackgroundDrawable(new BitmapDrawable(creatBitmap(path)));
--参考方法--
两个Activity之间的通信要通过Intent,你可以设置为startActivityForResult,通过返回码来自动设置
或者用Service和广播都可以实现
--参考方法--
bttton.setBackgroundDrawable(new BitmapDrawable(BitmapFactory.decodeFile(SD卡路径)));
--参考方法--
首先这个用不着广播吧。传对象就可以解决。。
简单写了一个例子。。
点击btn1实现改背景的效果

package com.lxl.testapp;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
Context context;
private NotificationManager mNotificationManager; //通知管理
int NOTIFICATIONS_ID=111;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.context=this;
Log.e("TEST", "MainActivity启动");

setContentView(R.layout.activity_main);
// ImageView i=new ImageView(this);
// i.setBackgroundResource(R.drawable.showicon);

// WindowManager wm = (WindowManager) context.getSystemService(context.WINDOW_SERVICE);
// wm.addView(i, new WindowManager.LayoutParams(-1,-1));

List<PackageInfo> packs = context.getPackageManager()
.getInstalledPackages(0);
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //初始化管理器

final RelativeLayout r=(RelativeLayout) findViewById(R.id.layout);


final WaitDialog waitDialog = new WaitDialog(context);


Button btn1=(Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
InputStream open=null;
try {
open = context.getResources().getAssets().open("showicon.png");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Drawable d = Drawable.createFromStream(open, "showicon.png");
r.setBackground(d);
}
});

Button btn2=(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i=new Intent();
i.setClass(context, MyActivity.class);
context.startActivity(i);
}
});

Button btn3=(Button)findViewById(R.id.btn3);
btn3.setOnClickListener(new OnClickListener() {
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:35:39
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11884/
本文WWW.DOC100.NET DOC100.NET版权所有。