fumier / AndroidExecrise

Android Execrises,recording the process of android learning.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AndroidExecrise

Android Execrises,recording the process of android learning.

1、Android之Toast

知识点

源代码

实现结果

运行结果

2、Android之分享弹窗

知识点

实现结果

先说实现结果,再说实现步骤。

运行结果

实现步骤

上图显示的是我们自定义的分享界面。只包括微信、微信朋友圈和微博。 1、将该分享界面看作为一个Activity,首先要进行相应的布局activity_share 2、当点击“分享按钮”时,通过startActivity显示该Activity 3、该Activity的显示方式,通过getWindow()方法返回Window对象,设置当前窗体的显示效果(显示地点,弹出效果,背景色等等)。 在上述实现过程中步骤三的实现过程较为复杂。涉及到两个知识点,一个是弹出窗的theme设置;一个是弹出窗的动画设置。

  • 弹出窗的theme设置,一般设置在themes文件中。
    <style name="ShareDialog" parent="android:style/Theme.Dialog">
        <!--是否显示window的标题栏-->
        <item name="android:windowNoTitle">true</item>
        <!--去掉window的白边-->
        <item name="android:windowFrame">@null</item>
        <!--是否半透明-->
        <item name="android:windowIsTranslucent">true</item>
        <!--设置window的背景-->
        <item name="android:windowBackground">@null</item>
        <!--是否浮于activity之上-->
        <item name="android:windowIsFloating">true</item>
    </style>
  • 弹出窗的动画设置,一般设置在styles.xml文件中
    <style name="push_bottom">
        <item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
        <item name="android:windowExitAnimation">@anim/push_bottom_out</item>
    </style>

相关代码:ShareDialogActivity

intent-filter之data

知识点

源代码

android之带进度条的WebView

知识点

实现步骤

  • 定制化一个进度条要悬浮在网页的最上端,如何自定化进度条,当然是参考系统中自带进度条的实现方式。无非是在系统进度条的基础上,改变进度条的style,也就是说自定义的进度条的style。
 <style name="Widget.ProgressBar.Horizontal.Blue" parent="android:style/Widget.ProgressBar.Horizontal">
        <item name="android:progressDrawable">@drawable/progress_horizontal_blue</item>
 </style>

继承Widget.Progress.Horizontal类,然后实现子类,重写progressDrawable的功能。所以我们要重新定义一个drawable文件,如何写,自然是参考Horizontal中子类progressDrawable的写法。使用layer-list相当于ps中的层叠加,进度条由一个背景色和一个表示进度的颜色组成,加入clip标签,表示进度条不断的增长的含义。

layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#dcdcde"/>
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#06B9D1"/>
            </shape>
        </clip>

    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#06B9D1"/>
            </shape>
        </clip>

    </item>

</layer-list>

实现结果

运行结果

参考源码

android之Selector

知识点

实现结果

运行结果

实现步骤

上图是我仿淘宝做的TabHost,那么实现上图的TabHost所涉及到的知识点有以下几点:

  • selector(drawable和color)的使用
  • FragmentTabHost类的使用 本次代码的重点是练习selector的使用。在上图中以“首页”为例,点击首页,按钮和字体均改变颜色。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_home_red" android:state_selected="true" />
    <item android:drawable="@drawable/ic_home_red" android:state_pressed="true" />
    <item android:drawable="@drawable/ic_home" />
</selector>

而字体颜色通过TextView中的style="@style/TabTextStyle"来设置,TabTextStyle继承Widget.TextView属性,这里面最重要的是对TextColor属性值进行重写。@color/tab_text_color_selector,此颜色属性同样涉及一个颜色选择器。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#ff5000" android:state_selected="true" />
    <item android:color="#5b6160" />
</selector>

程序参考

About

Android Execrises,recording the process of android learning.


Languages

Language:Java 100.0%