2012-06-11 3 views
1

Я все еще не могу найти способ установить обои, которые получаются из ImageView. Любой может показать мне способ установить обои телефона из android ImageView?Как установить обои из imageview

Вот мой код:

ImageView Планировка:

<ImageView 
    android:contentDescription="My Wallpaper" 
    android:id="@+id/full_image_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:saveEnabled="true" 
    /> 

Активность на изображение Вид

Пожалуйста заметил, что изображение, которое показывает в FullImageActivity получает от изображения GridView после нажатия пользователем по пункту ,

public class FullImageActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.full_image); 

    // get intent data 
    Intent i = getIntent(); 

    // Selected image id 
    int position = i.getExtras().getInt("id"); 
    ImageAdapter imageAdapter = new ImageAdapter(this); 

    ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
    imageView.setImageResource(imageAdapter.mThumbIds[position]); 
} 
} 

Я хочу, чтобы установить обои с изображением в вышеуказанной деятельности после того, как нажатие пользователем на экране я всплывет спросить пользователя, хотят ли они, чтобы установить его в качестве обоев или нет.

+0

Да, я думаю, что @Abdul код прийти, чтобы установить изображение в качестве обоев – Praveenkumar

+0

дорогой SPK, я добавил, но он не мог работать :( – SopheakVirak

+0

Попробуйте мой ответ с вашими потребностями – Praveenkumar

ответ

1

Я разместил свой код независимо от того, что использую в своем приложении. Я также беру изображение с GridView и, когда выбрано любое изображение. Это будет установлено в качестве обоев.

Но, мой код кажется совсем другим. Я никогда не использовал никаких ImageView

MainActivity.this

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

      ImageAdapter i = (ImageAdapter)parent.getAdapter();     
      Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),(int)i.getItemId(position)); 

      WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 

      try { 
       myWallpaperManager.setBitmap(mBitmap); 
       Toast.makeText(MainActivity.this, "Wallpaper set", Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       Toast.makeText(MainActivity.this, "Error setting wallpaper", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
} 

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 

    public ImageAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return mThumbIds.length; 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return mFullSizeIds[position]; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 

     if (convertView == null) { 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(300, 250)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageResource(mThumbIds[position]); 

     return imageView; 
    } 

    // references to our images 
    private Integer[] mThumbIds = { 
      R.drawable.wallpaper1t, 
      R.drawable.wallpaper2t, 
      R.drawable.wallpaper3t, 
      R.drawable.wallpaper4t, 
      R.drawable.wallpaper5t, 
      R.drawable.wallpaper6t, 
      R.drawable.wallpaper7t, 
      R.drawable.wallpaper8t 
    }; 

    private Integer[] mFullSizeIds = { 
      R.drawable.wallpaper1, 
      R.drawable.wallpaper2, 
      R.drawable.wallpaper3, 
      R.drawable.wallpaper4, 
      R.drawable.wallpaper5, 
      R.drawable.wallpaper6, 
      R.drawable.wallpaper7, 
      R.drawable.wallpaper8 
    }; 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"/> 

Может быть, это может быть поможет вам много.

2

Вам нужно создать растровое изображение затем установить его в качестве обоев

  Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), IMAGE_ID); 
      WallpaperManager myWallpaperManager = WallpaperManager 
        .getInstance(getApplicationContext()); 

      try { 
       myWallpaperManager.setBitmap(mBitmap); 
       Toast.makeText(SetWallPaper.this, "Wallpaper set", 
         Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       Toast.makeText(SetWallPaper.this, 
         "Error setting wallpaper", Toast.LENGTH_SHORT) 
         .show(); 
      } 

Где image_id является идентификатор ресурса вашего Drawable, например R.drawable.imagename

+0

Итак, я преобразовывают как это:. Bitmap mBitmap = BitmapFactory.decodeResource (getResources(), R.id.full_image_view), позвольте мне попробовать – SopheakVirak

+0

yes this way .... –

+0

дорогой abdul, я добавил, но это не сработает, тогда я тоже не использую этот файл. Bitmap mBitmap = BitmapFactory.decodeResource (getResources(), imageAdapter.mThumbIds [position]); – SopheakVirak

 Смежные вопросы

  • Нет связанных вопросов^_^