小知识点-备记
2016-07-18 18:25
295 查看
1.Android中设置文本颜色
1.在xml文件中设置android:textColor="#E0DCDE"
2.代码中设置
(1)系统颜色
textView.setTextColor(Color.RED);
(2)十六进制转换颜色值
textView.setTextColor(0xffdaa520);//后6位是颜色值
(3)自定义颜色
textView.setTextColor(R.color.red_color);
<?xml
version="1.0" encoding="utf-8"?>
<resources>
<color name="red_color">#FF0000</color>
<color name="green_color">#00FF00</color>
</resources>
2.Integer和int的转换
在用到 List<Integer> mAddedOrderCity = new ArrayList<Integer>(); list中需存放Integer形数据,而我们要存取的是int形,这就要进行转换一下:int到Integer:
int a=3;
Integer A=new Integer(a);
或:
Integer A=Integer.valueOf(a);
Integer到int:
Integer A=new Integer(5);
int a=A.intValue();
至于Integer.parseInt(String str)则是将String类型转为int类型。
int类型是放在栈空间的,Integer是作为对象放在堆空间的;
int 是基本类型,不是类,为了符合面向对象编程,后来出现了Integer 类,他是对int进行封装的.
int不是对象,是java原始的数据类型,它默认值为0.
Integer是个对象,它有自己的方法,默认值为NULL。
实现这种对象包装的目的主要是因为类能够提供必要的方法,用于实现基本数据类型的数值与可打印字符串之间的转换,以及一些其他的实用程序方法;
另外,有些数据结构库类只能操作对象,而不支持基本数据类型的变量,包装类提供一种便利的方式,能够把基本数据类型转换成等价的对象,从而可以利用数据结构库类进行处理。
3.获取string.xml文件里面的值有几个不同的地方
1.在AndroidManifest.xml与layout等xml文件里:android:text="@string/resource_name"
2.在activity里:
方法一:this.getString(R.string.resource_name);
方法二:getResources().getString(R.string.resource_name);
3.在其他java文件(必须有Context或pplication)
方法一: context.getString(R.string.resource_name);
方法二: application.getString(R.string.resource_name);
4.Android raw文件和assets文件区别
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
*读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作
InputStream is = getResources().openRawResource(R.id.filename);
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作
AssetManager am
= null;
am = getAssets();
InputStream is = am.open("filename");
或者:
InputStream is=getResources().getAssets().open("filename");
5.RatingBar技巧
5.1.ratingBar实现:<RatingBar android:id="@+id/ratingBar" android:layout_height="wrap_content" android:layout_width="wrap_content" android:rating = "3" android:numStars="5" android:stepSize = "0.5"/>
如果你的布局中有RatingBar,那么你的layout_width和layout_height最好要设置成wrap_content,至少layout_width是必须这么做的,因为如果没有这么做,那么很可能你的星星显示不出来,当然,你可以修改一下星星的大小,就可以显示更多的星星。那么,接下来,就是介绍RatingBar中的相关属性。
android:rating = "3.5",这一条是设置默认的分数,可以是浮点数,因为我们的RatingBar其实是评分条,所以星星的数量其实就是用来显示分数的数量,而默认的分数就是应用一开始出现的星星的数量。
android:numStars="5",这个是设置显示的星星数量,理论上,是任何整数都可以,但是我的建议就是最好就是5,因为如果多于5的话,我试过,就我的手机,3.7寸大的屏幕,最多只能显示5.8,为什么是这么怪的数据,因为那个第六个星星根本就还有一角没有显示出来。
android:stepSize = "0.5“,这是显示步长的。什么是步长,就是当你的分数增加时,是按照多大的分数增加的,就像这里,步长是0.5,那么你的手机上显示的星星是可以用你的手指点击来增加分数的,而这里就会按照一次点击增加0.5的步长,就是半颗星星。
但是,这里有点必须要注意,就是我们有时候,不,应该是大部分情况,都不希望我们的RatingBar是可以改动的,是固定的显示分数的,那么,这时我们应该怎样做呢?就是再增加一条属性,就是android:isIndicator="true",这样分数就会固定,不会改变,所以,步长的设定就完全没有必要。
.RatingBar样式的修改
很多时候,默认的RatingBar并不能满足我们的要求,因为我们的应用的需求是各种各样的,默认的样式实在是太过于单调了。这时就需要修改RatingBar的属性了。一般而言,我们都只会修改RatingBar的大小,图样,颜色,等等。所以,这里我就只挑几种比较常见的,就是上面说到的三种。
1.大小。
默认的RatingBar的星星大小,老实说,实在太大了,因为有时候我们呢,会想要将RatingBar放在其他组件上,如ListView,所以,默认的大小肯定不符合我们的要求。那么,我们需要将星星变小一点,于是就需要在RatingBar的布局中添加这么一句:style="?android:attr/ratingBarStyleSmall"这样,星星的大小就会变小,效果图如下:
![](http://pic002.cnblogs.com/images/2012/416296/2012090916255345.png)
很抱歉,就我目前收集到的资料来看,星星的大小就只有默认和变小这两种模式,没有其他的情况,但是就我目前的使用情况来说,已经足够了,如果你们有其他要求,那么,我的建议就是换掉默认的星星图案吧。
接下来就是颜色和图样的改变。为什么这两条要放在一块讲呢?因为这两条的修改就是自定义自己的RatingBar,所谓的自定义,其实就是用自己的图样换掉默认的图案,这样是最好的情况,因为包括大小,颜色等等你都能使用自己满意的样式。因为我实在是没有找到什么相关的方法和资料能够解决这个问题,基本上,网上都是选择替换掉图案,因为系统中的星星的图案是固定的,它就只是一张图片而已,所以应该真的是没法用代码进行修改。应该吧?因为以后可能就不一样了吧。方法如下:
2.RatingBar的自定义设置:
我们还是要在我们的RatingBar的布局中添加这么一句:style="@style/myRatingBar",然后就是开始创建我们的myRatingBar的xml文件了。在res/values目录下创建一个xml文件,然后下面是代码:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/myRatingBar</item> <item name="android:minHeight">15dip</item> <item name="android:maxHeight">15dip</item> </style> </resources>
item name="android:minHeight"和item name="android:maxHeight"可以自己定义自己的RatingBar的大小。
接着是在res/drawable下创建我们的myRatingBar.xml文件,代码如下:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+android:id/background" android:drawable="@drawable/rating" /> <item android:id="@+android:id/progress" android:drawable="@drawable/rating_show" /> </layer-list>
这里面,第一个item是设置背景图案的,第二个item是设置RatingBar图案的。
到了这里,基本上的设置已经搞定了,我们可以自定义属于自己的RatingBar了。由于本人手上没有什么图片资源,所以,就贴别人的效果图出来吧,如果有得罪该图的作者的话,还请见谅啊。
![](http://pic002.cnblogs.com/images/2012/416296/2012090915415155.png)
5.2RatingBar 修改 颜色 大小 图片
一、RatingBar如何更改填充星星的颜色呢?
解决方法:
1、在Android 5.0版本之后,RatingBar控件有一个 android:progressTint: 属性,在这里可以直接设置自己想要的颜色。
例如:
2、大家可以看到在方法一中,该条语句出现了黄条警告,这就是因为它只支持API 21以上的版本,那么低版本的要如何进行兼容呢?我们可以在填充该布局的Activity中写入如下语句:
例如:
经过以上的方法,无论我们的Android版本是哪一个,都可以实现我们更改颜色的目的。
二、如何自定义样式修改RatingBar的图标以及颜色?
解决方法:
步骤一:在res/values/style.xml文件下自定义我们所需要的RatingBar样式:
例如:
步骤二: 在res/drawable文件夹下新建 glimmerratingbar.xml 文件:
例如:
步骤三:以上的准备工作做好之后,就是在布局文件里面将RatingBar的style设置成我们自定义的样式:
例如:
这样就可以啦~
6.嵌套Fragment的使用
嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment.使用时, 主要要依靠宿主Fragment的
getChildFragmentManager()来获取FragmentManger.
7.studio配置so库引用
AndroidStudio中引用so库,只要把so库放在libs下即可:然后在项目的build.gradle文件的android{ }内配置以下代码即可:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
相关文章推荐
- 如何在不同信息提供者之间复制QUERY
- 第一章 对象导论
- 山东理工OJ 2055 来淄博旅游
- 什么是Code Review
- Codeforces 214A System of Equations
- Linux Vi 命令大全
- Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
- 弹出按钮----Animator例子
- JUnit浅谈
- 蓝牙低电量BLE的相关用法
- Android 自定义控件打造史上最简单的侧滑菜单
- 线程状态
- php二维数组相同id的数量相加
- Asp.Net Core- 多样性的配置来源
- 读第一遍Thinking in java的笔记
- Java JVM:编译加载机制与自定义类加载器
- 2.【排序】Merge Two Sorted Lists--Accepted Java code
- SDUT1479行编辑器(栈)
- app 欢迎界面
- Android 实现形态各异的双向侧滑菜单 自定义控件来袭