它已经几天了,试图弄清楚这个功能是如何工作的? 我已经在堆栈溢出寻找它太ofcourse, Downloading and setting a wallpaper 尝试过,但得到doInBackground错误。 和更多“似乎合法”的答案,我已经尝试过。但最终,我仍然不知道如何改变我的设置壁纸从图片URL
final String url2 = "http://icons.iconarchive.com/icons/3xhumed/mega-games-pack-26/256/Call-of-Duty-World-at-War-5-icon.png";
displaynya.setImageUrl(url2);
,当我把它在我的按钮
case R.id.BTsetWalp:
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(// what should i do with this?);
如此混乱.. 过去的日子里使用,我试图只使用已存储在应用中的图像,使用该情况2
case R.id.ivwall02:
displaynya.setImageResource(R.drawable.a2);
setWallp = R.drawable.a2;
break;
此代码正在工作。但如果我使用它,我的应用程序的大小将变得非常大,因为所有巨大的壁纸图像都存储在应用程序中。所以我想用案例1中的方法(首先下载图像,然后将其设置为壁纸),但我卡在那里..
============== ====================================
编辑2,更新了我的代码到目前为止
下面是完整的代码
public class CopyOfGallery extends Activity implements View.OnClickListener {
private SmartImageView displaynya;
Button bWalp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
bWalp = (Button) findViewById(R.id.BTsetWalp);
displaynya = (SmartImageView)findViewById(R.id.iVDisplay);
ImageView image01 = (ImageView) findViewById(R.id.ivwall01);
ImageView image02 = (ImageView) findViewById(R.id.ivwall02);
image01.setOnClickListener(this);
image02.setOnClickListener(this);
bWalp.setOnClickListener(this);
}
@Override
public void onClick(View vImage) {
// TODO Auto-generated method stub
switch (vImage.getId()){
case R.id.ivwall01:
final String url1 ="http://i100.photobucket.com/albums/m21/keitaro3660/komari/Komari02/km_happy.jpg" ;
displaynya.setImageUrl(url1);
break;
case R.id.ivwall02:
final String url2 ="http://i100.photobucket.com/albums/m21/keitaro3660/komari/Komari02/km_awkward.jpg" ;
displaynya.setImageUrl(url2);
break;
case R.id.BTsetWalp:
// get the Image to as Bitmap
Bitmap bitmap = BitmapFactory.decodeStream(getResources().openRawResource(R.id.iVDisplay));
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
// get the height and width of screen
int height = metrics.heightPixels;
int width = metrics.widthPixels;
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
try {
wallpaperManager.setBitmap(bitmap);
wallpaperManager.suggestDesiredDimensions(width, height);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
为
Bitmap bitmap = BitmapFactory.decodeStream(getResources().openRawResource(R.id.iVDisplay));
这个函数是用来获取我的R.id.iVDisplay中显示的任何图像都不是?正是我需要的。但为什么它会崩溃? :'(
这里是我的日志
01-08 23:39:51.529:E/AndroidRuntime(22803):致命异常:主要
01-08 23:39:51.529:电子/ AndroidRuntime(22803): 显示java.lang.NullPointerException
01-08 23:39:51.529:E/AndroidRuntime(22803):在 android.content.res.Resources.openRawResource(Resources.java:951)
01-08 23:39:51.529:E/AndroidRuntime(22803):at android.content.res.Resources.openRawResource(Resources.java:927)
01-08 23:39:51.529:E/AndroidRuntime(22803):at preff.Gallery.onClick(Gallery.java:355)01-08 23:39:51.529: E/AndroidRuntime(22803):at android.view.View.performClick(View.java: 3526)
01-08 23:39:51.529:E/AndroidRuntime(22803):在 android.view.View $ PerformClick.run(View.java:14133)
missplaceme nt或者我错过了什么?:(
“下载并设置壁纸尝试过,但得到doInBackground错误。”你做了什么错误? –
通过这个去https://github.com/loopj/android-smart-image-view –
哇真的很快响应:D @Brontok嗯......我想像“AsyncTask#5”错误,当我尝试按下图像时,这是昨天,我已经改变了代码。哇,很酷的链接!好吧,我会尝试在那里学习第一:D谢谢 – keitaro3660