2017-02-15 3 views
-1

こんにちは皆私はオンラインの壁紙app.Whereユーザーが壁紙online.iにアクセスすることができますを作成しています2つのボタンを追加する最初の1つは壁紙として設定され、私はこのことについて感謝してくれます。壁紙ボタンとしてセットを追加するには

パブリッククラス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

私はPicassoと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

もっと手がかりを必要としています..画像をバックグラウンドでダウンロードするためにPicassoとjsonを使用しています。ありがとう –

+0

してください、ローカルファイルを使用してみてください。それを行う方法を知るには、編集答えを見てください。ローカルファイルが正常に動作したら、推奨リンクをクリックし、問題に最も適した答えを選択します。 –

関連する問題