Android开发 设置手机壁纸
目录
- 内容概要
- 所需方法
- Mainfest中加入权限:
- 布局代码
- ImageAdapter类
- main代码
- 实现效果图
内容概要
可以选择自己喜欢的图片进行壁纸设置
所需方法
1、使用WallpaperManager的setResource(int ResourceID)方法2、使用WallpaperManager的setBitmap(Bitmap bitmap)方法3、重写ContextWrapper 类中提供的setWallpaper()4.传入9张自己喜欢的图片,命名image1-image9
Mainfest中加入权限:
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
布局代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:background="#000000"tools:context=".MainActivity" ><ImageSwitcherandroid:id="@+id/ImageSwitcher"android:layout_width="fill_parent"android:layout_height="370dp"></ImageSwitcher><Galleryandroid:id="@+id/Gallery"android:layout_width="fill_parent"android:layout_height="80dp"android:layout_below="@+id/ImageSwitcher" /><Buttonandroid:id="@+id/BtnGo"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_below="@+id/Gallery"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:text="@string/BtnGo" />
</RelativeLayout>
ImageAdapter类
使用Gallery来实现一个可以供用户选择的缩略图列表,当用户选择列表中的图像时,会在ImageSwitcher控件中显示出当前图像,当点击Button时,当前图片将被设置为壁纸。其实这里的ImageSwitcher完全可以替换为ImageView,考虑到ImageSwitcher可以提供较好的动画效果,所以我们在这里选择了ImageSwitcher。同样地,我们继续使用Android开发学习之Gallery中的那个ImageAdapter类:
代码:
package com.android.gallery2switcher;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;public class ImageAdapter extends BaseAdapter{//类成员myContext为context父类private Context myContext;private int[] myImages;//构造函数,有两个参数,即要存储的Context和Images数组public ImageAdapter(Context c,int[] Images){// TODO Auto-generated constructor stubthis.myContext=c;this.myImages=Images;}//返回所有的图片总数量@Overridepublic int getCount(){return this.myImages.length;}//利用getItem方法,取得目前容器中图像的数组ID@Overridepublic Object getItem(int position){return position;}@Overridepublic long getItemId(int position){return position;}//取得目前欲显示的图像的VIEW,传入数组ID值使之读取与成像@Overridepublic View getView(int position, View convertView, ViewGroup parent){ImageView image=new ImageView(this.myContext);image.setImageResource(this.myImages[position]);image.setScaleType(ImageView.ScaleType.FIT_XY);image.setAdjustViewBounds(true);return image;}}
main代码
package com.android.gallery2switcher;
import java.io.IOException;import android.os.Bundle;
import android.app.Activity;
import android.app.WallpaperManager;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity {Gallery mGallery;ImageSwitcher mSwitcher;Button BtnGo;int[] Resources=new int[]{R.drawable.image0,R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8};int index;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//不显示标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);mGallery=(Gallery)findViewById(R.id.Gallery);mSwitcher=(ImageSwitcher)findViewById(R.id.ImageSwitcher);//实现ImageSwitcher的工厂接口mSwitcher.setFactory(new ViewFactory(){@Overridepublic View makeView(){ImageView i = new ImageView(MainActivity.this);i.setBackgroundColor(0xFF000000);i.setScaleType(ImageView.ScaleType.FIT_CENTER);i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));return i;}});//设置资源mSwitcher.setImageResource(Resources[0]);//设置动画mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));BtnGo=(Button)findViewById(R.id.BtnGo);BtnGo.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){SetWallPaper();}});ImageAdapter mAdapter=new ImageAdapter(this,Resources);mGallery.setAdapter(mAdapter);mGallery.setOnItemSelectedListener(new OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> Adapter, View view,int position, long id){//设置图片mSwitcher.setImageResource(Resources[position]);//获取当前图片索引index=position;}@Overridepublic void onNothingSelected(AdapterView<?> arg0){}});}//设置壁纸public void SetWallPaper(){WallpaperManager mWallManager=WallpaperManager.getInstance(this);try{mWallManager.setResource(Resources[index]);}catch (IOException e){e.printStackTrace();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu){return true;}}
实现效果图
可左右拖动:
点击设置壁纸后:
作者:黄伟龙
原文链接:https://blog.csdn.net/qq_50808543/article/details/112081058
Android开发 设置手机壁纸相关推荐
- android 手机壁纸源码,Android设置手机壁纸-源码(WallPaper)
Android设置手机壁纸-源码(WallPaper) /** * Andorid设置手机屏幕的壁纸 * * @description: * @author ldm * @date 2016-5-4 ...
- Android开发之手机铃声代码实现
Android开发之手机铃声代码实现 [IT168技术]对于Android应用开发来说,手机铃声是一个非常重要的需求,网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声.通知声音.闹钟声音和 ...
- Android设置手机壁纸(WallPaper)
/*** Andorid设置手机屏幕的壁纸* * @description:* @author ldm* @date 2016-5-4 下午3:08:56*/ public class SetWall ...
- Android 开发 设置banner圆角,滑动时,图片圆角失效
Android 开发中有时需要设置banner图片以圆角显示,设置圆角简单,可以使用自定义ImageView, 但是在滑动过程中会出现直角的情况,这时,只需要对父View进行裁剪即可: main_ba ...
- android开发获取手机屏幕分辨率
android开发基础过程中获取手机屏幕分辨率用来加载不同的UI,图片等,如何获取手机屏幕分辨率? DisplayMetrics displayMetrics=new DisplayMetrics() ...
- XE5 Android 开发实现手机打电话和发短信 [转]
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...
- delphi android 短信,delphi xe5 android 开发实现手机打电话和发短信
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...
- android 开发 华为手机型号,华为手机用户可以体验Android P了!9款华为机型开放EMUI 9.0升级...
[天极网手机频道]根据往年的惯例,华为手机应该会在国内首发Android P.不过令人意外的是,这一次一加手机抢先为用户升级了Android P系统.不过华为毕竟是国产手机力的老大,基于Android ...
- android 读取usb 文件,android开发:手机连接电脑读取文件
满意答案 pretty_102 2013.05.16 采纳率:47% 等级:10 已帮助:967人 展开全部 一.打开手机USB调试模式 打开手机系统设置:[菜单(menu)]->[设置] ...
最新文章
- NHibernate.Profiler 使用教程
- linux i3如何运行qq,linux qq (CPU :i3)怎么安装?
- setTimeout 的定时器的妙用
- go 返回mysql数组_Go基础之--操作Mysql(一)
- vue如何获取tree当前选中的节点_vue中element-ui 树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...
- Lua学习笔记(5): 表
- 苹果手机编辑word_苹果手机的安全性真的太好了,这样加密,重要文件不怕泄密啦...
- Install Kernel 3.10 on CentOS 6.5
- SNMP报文抓取与分析(一)
- 制作OpenStack Windows Server 2016镜像
- 基于logistic模型,GM模型和Leslie模型全国人口预测
- tolua unity 报错_Unity Editor + tolua 在 Linux 下的 runtime 问题
- 服务器虚拟化的分类宿主模型,虚拟化分类
- 查看电脑重启日志_win10中查看开关机时间及查看admin的RID的方法
- Labplus:Scratch创作工具的替代与进步
- 高并发核心技术Redis系列(七)--------Jedis操作Redis
- 数据库高并发解决方案(二)部署优化
- 广州成人大学哪个学校最好
- C++后端开发知识点总结
- iPhone 6/Plus/5s/三星S5谁的屏幕更好?