2014-01-08 4 views
0

Это было дней в настоящее время, пытаясь понять, как работает эта функция ... Я искал его в переполнение стека слишком, конечно 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 (сначала загружаю изображение, а затем устанавливаю его на обои), но я застрял там.

===================== ====================================

EDIT 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): FATAL ИСКЛЮЧЕНИЕ: главный

01-08 23: 39: 51,529: E/AndroidRuntime (22803): java.lang.NullPointerException

01-08 23: 39: 51,529: Е/AndroidRuntime (22803): в android.content.res.Resources.openRawResource (Resources.java:951)

01-08 23: 39: 51,529: Е/AndroidRuntime (22803): в android.content.res.Resources.openRawResource (Resources.java:927)

01-08 23: 39: 51,529: Е/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: Е/AndroidRuntime (22803): в android.view.View $ PerformClick.run (View.java:14133)

missplaceme nt или мне что-то не хватает?:(

+0

«Загрузка и установка обои пробовал, но получил ошибку doInBackground.» Какую ошибку вы получаете? –

+0

Пройтись это https://github.com/loopj/android-smart-image-view –

+0

wow очень быстрая реакция: D @Brontok hmmm ... Я думаю, что «AsyncTask # 5» ошибка, когда я пытаюсь нажать на изображение. Это вчера, и я уже меняю код. .. wow cool link! Хорошо, я попробую учиться там сначала: D спасибо – keitaro3660

ответ

0

попробовать это, я думаю, что это поможет вам wallpaper

+0

thx для ответа назад! Я почти теряю надежду ... вау я думаю, что это решение Bitmap bitmap = BitmapFactory.decodeStream (getResources() .openRawResource (R.id.iVDisplay)). Я не получил ошибок в реализации в eclipse, но когда я установил его на свой телефон и нажал кнопку [Установить обои], он получил сбой :(почему это? я обновил [UPDATE 2] мой код в вопросе, пожалуйста, помогите, просто немного больше. Возможно, я что-то упустил, но я не знаю, что .. – keitaro3660

+0

или это потому, что мой iVDisplay - это SmartImageView, а не простой ImageView? ? но даже если это так, изображение (или растровое изображение) все еще там ... hmmm ... – keitaro3660

+0

проверено в обычном ImageView с предопределенным R.drawable. получил тот же журнал ошибок, что и выше ... так в чем проблема?: ( – keitaro3660