如何设置图像作为viewpager应用程序的墙纸?墙纸、应用程序、如何设置、图像

2023-09-04 03:08:51 作者:你是我的单曲循环

编辑$以下链接...... 集从ViewPager .I开发简单viewpager应用程序连同背景音乐。不过,我想修改我的应用程序让用户选择该图像将让他们选择设置为墙纸....我不想要实现我的应用程序的任何按钮。用户应该能够仅仅触摸图像,这将给他们选择设置为墙纸...

Edited code after following this link ...Set wallpaper from ViewPager .I developed simple viewpager app along with the background music. However, I want to modify my app so that image chosen by user will give them option to set as wallpaper....I don't want to implement any buttons in my app. User should be able to just touch the image , which will give them option to set as wallpaper...

我收到错误在这code curruntPosition =为arg0 ;.它说:您现在的位置不能被解析到一个变量。我不知道这是什么意思?

I am getting error at this code curruntPosition=arg0;. It says "Current position cannot be resolve to a variable". I don't know what it mean ...

以下是我的codeS ...

Following are my codes...

Mainactivity.java

Mainactivity.java

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ShareActionProvider;




public class MainActivity extends Activity {

 MediaPlayer oursong;
 ViewPager viewPager;

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
   oursong = MediaPlayer.create(MainActivity.this, R.raw.a);
   oursong.start ();

 viewPager = (ViewPager) findViewById(R.id.view_pager);
 ImageAdapter adapter = new ImageAdapter(this);
 viewPager.setAdapter(adapter);

 viewPager.setOnPageChangeListener(new OnPageChangeListener() {

     @Override
     public void onPageSelected(int arg0) {
         // TODO Auto-generated method stub
         //Here you can set the wallpaper
                 curruntPosition=arg0;

     }

     @Override
     public void onPageScrolled(int arg0, float arg1, int arg2) {
         // TODO Auto-generated method stub

     }

     @Override
     public void onPageScrollStateChanged(int arg0) {
         // TODO Auto-generated method stub

     }
 });

}

private ShareActionProvider mShareActionProvider;


@Override
public boolean onCreateOptionsMenu(Menu menu) {
   // Inflate menu resource file.
   getMenuInflater().inflate(R.menu.activity_main, menu);

   // Locate MenuItem with ShareActionProvider
   MenuItem item = menu.findItem(R.id.menu_item_share);

   // Fetch and store ShareActionProvider
   mShareActionProvider = (ShareActionProvider) item.getActionProvider();

   // Return true to display menu
   return true;
}

// Call to update the share intent
private void setShareIntent(Intent shareIntent) {
   if (mShareActionProvider != null) {
       mShareActionProvider.setShareIntent(shareIntent);
   }
}

  @Override
  protected void onPause(){
  super.onPause();
   oursong.release();
   oursong = null;
}

}

imageadapter.java

imageadapter.java

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class ImageAdapter extends PagerAdapter {
    Context context;
    private int[] GalImages = new int[] {
        R.drawable.one,
        R.drawable.two,
        R.drawable.three
    };
    ImageAdapter(Context context){
        this.context=context;
    }
    @Override
    public int getCount() {
      return GalImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
      return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
      ImageView imageView = new ImageView(context);
      int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_small);
      imageView.setPadding(padding, padding, padding, padding);
      imageView.setScaleType(ImageView.ScaleType.FIT_XY);
      imageView.setImageResource(GalImages[position]);
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      ((ViewPager) container).removeView((ImageView) object);
    }
  }

我刚开始编程,所以请解释一下,或者这将是巨大的,如果你提供一些codeS。

I just start with programming, so please give some explanations, or it will be great if you provide some codes .

推荐答案

首先这个权限添加到清单

First add this Permission to the Manifest

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

现在一些code。

imageview.setOnClickListener(new View.OnClickListener() {

 public void onClick(View view) {

     WallpaperManager myWallpaperManager 
        = WallpaperManager.getInstance(context);
        try {
            myWallpaperManager.setResource(GalImages[position]);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       

}

});

Explantion:这将设置的图像会点击,当图像被点击,将手机设置为墙纸的选择可绘制

Explantion : This will set that the Image will be clickable , when the image is clicked it will set the phone Wallpaper with the selected drawable.

getApplicationContext() 

从活动的背景下。 这种变化将发生在适配器内。

is the Context from the Activity. This changes will take place inside the Adapter.

活动 加入这个变量

int currentPosition;