viewPaper 更换主界面背景图片
来源:互联网 发布:java什么是进程和线程 编辑:程序博客网 时间:2024/06/04 23:39
最近调试更换主界面背景功能,虽然还没有达到想要的任意选择图片功能,但是已经可以选择更换内置图片作为背景,记录一下。
首先需要注意的几点:
1、paperAdapter需要重写的几个函数不可以漏
@Override
public Object instantiateItem(ViewGroup container, int position)
{
container.addView(mImageViews.get(position));
return mImageViews.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object)
{
container.removeView(mImageViews.get(position));
}
@Override
public boolean isViewFromObject(android.view.View view, Object object) //这里可能是因为import的原因,需要用android.view.View
{
return view == object;
}
@Override
public int getCount()
{
return mImgIds.length;
}
2、获取图片的序号
需要在viewPaper的OnPageChangeListener中获取,通过paperAdapter中的函数很难获取当前position;
mViewPager.setOnPageChangeListener(new OnPageChangeListener(){
@Override
public void onPageSelected(int arg0) {
nLastPos = arg0;//这个就是当前选择的图片
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
System.out.println("onPageScrolled = " + arg0 + ", " + arg1 + ", " + arg2);
}
@Override
public void onPageScrollStateChanged(int arg0) {
System.out.println("onPageScrollStateChanged = " + arg0);
}
});
3、通过intent将获取的图片ID传给主活动,主活动设置为背景
btSetBg.setOnClickListener(new OnClickListener(){
@Override
public void onClick(android.view.View v)
{
// TODO Auto-generated method stub
if(nLastPos > mPagerAdapter.getCount()-1)
{
nLastPos = 0;
}
Intent intent = new Intent();
intent.putExtra("bg_resId", mImgIds[nLastPos]);
setResult(RESULT_OK, intent);
finish();
}
});
主活动中重写onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case 1:
if (data == null || "".equals(data))
{
return;
} else if (resultCode == RESULT_OK)
{
int bgResId = data.getIntExtra("bg_resId", 1);
findViewById(R.id.main_layout).setBackgroundResource(bgResId);
saveBgImg(bgResId);
}
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
4、 保存及读取背景的ID号,下次启动设置相应的背景
public void saveBgImg(int imgId)
{
SharedPreferences.Editor editor = getSharedPreferences(LOUYU_DATA_REC,
Context.MODE_PRIVATE).edit();
// 步骤2-2:将获取过来的值放入文件
editor.putInt("bg_imgId", imgId);
// 步骤3:提交
editor.commit();
}
public int getBgId()
{
// 步骤1:创建一个SharedPreferences接口对象
SharedPreferences read = getSharedPreferences(LOUYU_DATA_REC,
Context.MODE_PRIVATE);
// 步骤2:获取文件中的值
int value = read.getInt("bg_imgId", 0);
return value;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
int nBgImgId = getBgId();
if(nBgImgId != 0)
{
findViewById(R.id.main_layout).setBackgroundResource(nBgImgId);
}
- viewPaper 更换主界面背景图片
- Viewpaper Fragment RadioButton 仿QQ主界面
- android 如何更换屏幕上锁界面背景图片
- Android 如何更换屏幕上锁界面背景图片
- viewpaper
- C# 窗体更换背景图片
- IE工具栏背景图片更换
- UITabBarController更换tabBar背景图片
- js更换背景图片
- 更换grub引导背景图片
- Android 更换 RatingBar背景图片
- idea 更换编辑器背景图片
- Jquery控制背景图片更换
- 按钮背景图片更换
- 更换SAP主界面右边的背景
- 更换SAP主界面右边的背景
- 设置自动更换主界面背景
- MFC 更换背景图片的方法
- 有意思的位运算
- JavaScript创建cookie
- UVA 12108
- 一个Ip2long函数,通过调用go tool pprof分析,竟发现内存分配了3G
- java 8新特性终极指南
- viewPaper 更换主界面背景图片
- vim 光标快速移动技巧总结(vim高级操作的基础)
- ios7后二维码的生成与扫描(需要注意滤镜的模糊度问题)
- XMLDLL操作说明文档(四)
- qj的招待会
- 67,类的封装性
- 谈微软 KMS 激活
- 移动端性能测试概述
- HDU 5238 Calculator(线段树+中国剩余定理)