Android开发牛刀小试之“AA算钱软件”开发(三)
来源:互联网 发布:云优化搜推宝排名大师 编辑:程序博客网 时间:2024/06/05 14:49
今天主要添加了一个换肤的功能,可以切换6种不同的背景,即点击“换肤”按钮可以实现切换背景图片。
这个我在网上搜了好长时间,最终最靠谱和好理解的应该是下面这个链接里的方法:点击打开链接
为了添加这个功能耗费了我好长时间,以至于我开始怀疑我这样做开发是不是有问题?因为我没有去系统学习过Android开发,很多细节的东西不清楚,这样下去会不会越来越难啊。。求哪位哥们指点下我这个新人。
好了,还是把这个功能实现的详细过程说下吧!上代码!
核心代码如下:
Resources res = getResources();Drawable drawable = res.getDrawable(R.drawable.newImage); LinearLayout linearLayout = (LinearLayout)findViewById(R.id.bg);linearLayout.setBackgroundDrawable(drawable);
对应main.xml中的代码是:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/bg"android:id="@+id/bg"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="wrap_content"android:layout_height="wrap_content"> <Button android:id="@+id/but"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="关于" android:textSize="35px"/> <Button android:id="@+id/skinbut" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="换肤" android:textSize="35px"/></LinearLayout> <span style="font-family:Arial, Helvetica, sans-serif;">//后面的比较长且不相关就不给出了</span>我们看到原背景为bg.png图片,更改之后是newImage.png图片。之前在网上都是采用View实现切换背景的,但是总是只有一小块图片被切换了,所以我想应该是用linearLayout是最合适的吧~
之后我在此基础上实现了循环切换背景的功能,也就是每次点击“换肤”button都会切换一张新图,总共是6张图,放在drawable-hdpi文件夹下:
核心代码如下:
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.main);this.popbut = (Button) super.findViewById(R.id.popbut);this.statusinfo = (TextView) super.findViewById(R.id.statusinfo);this.popbut.setOnClickListener(new OnClickListenerImpl()) ;Button skinButton = (Button) findViewById(R.id.skinbut);skinButton = (Button) super.findViewById(R.id.skinbut);skinButton.setOnClickListener(new SkinOnClickListenerImpl());button1=(Button)findViewById(R.id.but); button1.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(AAcharge.this).setTitle("关于").setMessage("This is MSJ's first Android APP, I hope you like it, have fun !").setPositiveButton("确定", null).show();}});}private class SkinOnClickListenerImpl implements OnClickListener{@SuppressWarnings("deprecation")@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubResources res = getResources();int skinid = 0;if (skinID<=6){skinid = getResources().getIdentifier("bg"+skinID, "drawable", getPackageName());Drawable drawable = res.getDrawable(skinid);LinearLayout linearLayout = (LinearLayout)AAcharge.this.findViewById(R.id.bg);linearLayout.setBackgroundDrawable(drawable);skinID = skinID +1;} else {skinID = 0;skinid = getResources().getIdentifier("bg"+skinID, "drawable", getPackageName());Drawable drawable = res.getDrawable(skinid);LinearLayout linearLayout = (LinearLayout)AAcharge.this.findViewById(R.id.bg);linearLayout.setBackgroundDrawable(drawable);skinID = skinID +1;}}}
谢谢阅读!欢迎给出宝贵意见!
0 0
- Android开发牛刀小试之“AA算钱软件”开发(三)
- Android开发牛刀小试之“AA算钱软件”开发(一)
- Android开发牛刀小试之“AA算钱软件”开发(二)
- Android NDK 开发之(二) 牛刀小试
- Android NDK 开发之(二) 牛刀小试
- (三)牛刀小试之SolrJ
- 开发GNU软件之三
- 软件开发(三)
- Solr学习(三) 牛刀小试之SolrJ
- 2410开发板牛刀小试
- GameBuilder游戏开发系列之见缝插针(AA)
- Android软件开发之盘点常用系统控件界面大合集(三)
- Android软件开发之盘点常用系统控件界面大合集(三)
- Android软件开发之盘点常用系统控件界面大合集(三) .
- Android软件开发之盘点常用系统控件界面大合集(三) .
- Android软件开发之盘点常用系统控件界面大合集(三)
- Android软件开发之盘点常用系统控件界面大合集(三)
- Android软件开发之盘点常用系统控件界面大合集(三)
- C++ const 小结
- Vijos P1347 乘积最大
- Oracle 11g RAC RMAN ORA-00245 control file backup operation failed 错误 与 控制文件备份 说明
- 把VIM配置成IDE开发环境
- lievent 函数解析之 event_base_dispatch
- Android开发牛刀小试之“AA算钱软件”开发(三)
- JavaScript入门:006—JS函数的定义
- C# 知识点随笔
- Oracle Data Guard 理论知识
- linux启动顺序和进程概念
- 大容量磁盘应用ext4文件系统分区与格式化(与ext3不同哦)
- 4高并发服务器:UDP局域网服务器(组播)
- nmap -- write a nmap script
- HDU 3642——Get The Treasury(线段树+扫描线+离散化+体积交多次)