2017-02-15 21 views
-1

大家好,我正在创建一个在线壁纸应用程序。用户可以访问壁纸online.i想要添加两个按钮第一个设置为壁纸和第二个是下载按钮。因此,如果任何人帮助我对此表示感谢,我会感谢他们。如何添加一组作为壁纸按钮

公共类GalleryDetailActivity扩展ActionBarActivity {

public static final String EXTRA_IMAGE = "extra_image"; 


private ImageView mImageView; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_gallery_detail); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    mImageView = (ImageView) findViewById(R.id.image); 

    if (getIntent() != null && getIntent().getExtras() != null) { 
     if (getIntent().getExtras().containsKey(EXTRA_IMAGE)) { 
      Picasso.with(this).load(getIntent().getExtras().getString(EXTRA_IMAGE)).into(mImageView); 
     } 

    } 
+0

你能告诉我们你到目前为止试过的东西吗? – Forklift

+0

我使用毕加索和json为服务器下载图像 –

回答

0

首先,你应该确保你有权做出这样的动作。添加在您的清单:

<uses-permission android:name="android.permission.SET_WALLPAPER"/> 

要下载一些网站,你可以使用“doInBackground线程”主办的形象的建议如下:

How to download and save an image in Android

设置壁纸的按钮被创建下面的代码:

Button setWallpaper = (Button)findViewById(R.id.YOUR_BUTTON); 
ImageView imagePreview = (ImageView)findViewById(R.id.YOUR_PREVIEW); 
imagePreview.setImageResource(YOUR_IMAGE_RESOURCE); 

setWallpaper.setOnClickListener(new Button.OnClickListener(){ 
     @Override 
     public void onClick(View arg0) { 
      WallpaperManager myWallpaperManager 
      = WallpaperManager.getInstance(getApplicationContext()); 
      try { 
       myWallpaperManager.setResource(YOUR_IMAGE_RESOURCE); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
}}); 

YOUR_IMAGE可能是本地资源,如:

R.drawable.myImageFile 

答案中的链接有几种如何下载在线图像的方法。请检查它并尝试首先使用本地图像设置壁纸。

File f = new File(Environment.getExternalStorageDirectory(), "yourfile.jpg"); 
String path = f.getAbsolutePath(); 
File jpg = new File(path); 

if(jpg.exists()) { 
    Bitmap bmp = BitmapFactory.decodeFile(path); 
    BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); 
    WallpaperManager m=WallpaperManager.getInstance(this); 

    try { 
     m.setBitmap(bmp); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+0

我会在图像中放什么_resource我的源代码在线 –

+0

需要更多的线索..我使用毕加索和json在后台下载图像,所以我的图像源给我一些澄清谢谢 –

+0

请尝试使用本地文件。看到编辑答案知道如何做到这一点。本地文件运行良好后,点击建议的链接并选择最适合您的问题的答案。 –