您的位置:首页 > 其它

小知识点-备记

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"这样,星星的大小就会变小,效果图如下:

          



            很抱歉,就我目前收集到的资料来看,星星的大小就只有默认和变小这两种模式,没有其他的情况,但是就我目前的使用情况来说,已经足够了,如果你们有其他要求,那么,我的建议就是换掉默认的星星图案吧。

             接下来就是颜色和图样的改变。为什么这两条要放在一块讲呢?因为这两条的修改就是自定义自己的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了。由于本人手上没有什么图片资源,所以,就贴别人的效果图出来吧,如果有得罪该图的作者的话,还请见谅啊。

               



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']
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: