ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 如何从imageview设置壁纸

2019-10-07 03:27:15  阅读:273  来源: 互联网

标签:android-gridview android android-imageview wallpaper


我仍然无法找到从ImageView获取图像的壁纸的方法.
任何人都可以告诉我从Android 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]);
}
}

我想在用户触摸屏幕后在上面的活动中设置壁纸我会弹出询问用户是否要将其设置为壁纸.

解决方法:

无论我在我的应用程序中使用什么,我都发布了我的代码.我还从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"/>

也许,这可以帮助你很多.

标签:android-gridview,android,android-imageview,wallpaper
来源: https://codeday.me/bug/20191007/1864415.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有