安卓开发笔记(二)

来源:互联网 发布:淘宝店铺美工主管职责 编辑:程序博客网 时间:2024/05/01 18:02

           1.创建带布局的弹出框

</pre>    
<p></p><p></p><pre name="code" class="java">AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());                LayoutInflater inflater = LayoutInflater.from(getActivity());                View view1 = inflater.inflate(R.layout.alert_picture,null);                builder.setView(view1);                builder.setCancelable(true);                builder.create().show();
   setPositiveButton什么的就不用说了,这里主要是前几行得到布局然后加到builder里就行了,拿布局里的组件直接view1.findViewById就可以了。(这里因为我是想在一个碎片里实现,所以取context的时候用的是getActivity)。
</pre><p></p><p>       
2.为布局加边框</p><p></p><pre name="code" class="java"></pre><pre name="code" class="java">
   在drawable下新建border.xml,然后在background属性里引用这个文件就可以啦
   <pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >    <solid android:color="#FFFFFF" />//主背景颜色,这里我设置为白色    <stroke        android:width="3dp"//边框的宽度    android:color="#767879"  />//边框颜色    <padding                  //边框里内容与边框的距离,不设置的话内容会盖住边框(别问我怎么知道的)        android:bottom="3dp"        android:left="3dp"        android:right="3dp"        android:top="3dp" /></shape>

           3.ViewPager切换动画的简易实现

           (只支持安卓3.0以上版本)

           为viewpager添加切换动画只需一行代码:

vp.setPageTransformer(true,new DepthPageTransformer());
          这里的第二个参数是一个PageTransFormer类,是需要实现的。我们可以选择自己实现,也可以选择谷歌官方提供的两个实现类。这里我把两个类的代码放上,大家可以        选择一个直接复制然后粘贴在包里创建一个实现类。

    

public class ZoomOutPageTransformer implements ViewPager.PageTransformer {    private static final float MIN_SCALE = 0.85f;    private static final float MIN_ALPHA = 0.5f;    public void transformPage(View view, float position) {        int pageWidth = view.getWidth();        int pageHeight = view.getHeight();        if (position < -1) { // [-Infinity,-1)            // This page is way off-screen to the left.            view.setAlpha(0);        } else if (position <= 1) { // [-1,1]            // Modify the default slide transition to shrink the page as well            float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));            float vertMargin = pageHeight * (1 - scaleFactor) / 2;            float horzMargin = pageWidth * (1 - scaleFactor) / 2;            if (position < 0) {                view.setTranslationX(horzMargin - vertMargin / 2);            } else {                view.setTranslationX(-horzMargin + vertMargin / 2);            }            // Scale the page down (between MIN_SCALE and 1)            view.setScaleX(scaleFactor);            view.setScaleY(scaleFactor);            // Fade the page relative to its size.            view.setAlpha(MIN_ALPHA +                    (scaleFactor - MIN_SCALE) /                    (1 - MIN_SCALE) * (1 - MIN_ALPHA));        } else { // (1,+Infinity]            // This page is way off-screen to the right.            view.setAlpha(0);        }    }}
       另一个:

public class DepthPageTransformer implements ViewPager.PageTransformer {    private static final float MIN_SCALE = 0.75f;    public void transformPage(View view, float position) {        int pageWidth = view.getWidth();        if (position < -1) { // [-Infinity,-1)            // This page is way off-screen to the left.            view.setAlpha(0);        } else if (position <= 0) { // [-1,0]            // Use the default slide transition when moving to the left page            view.setAlpha(1);            view.setTranslationX(0);            view.setScaleX(1);            view.setScaleY(1);        } else if (position <= 1) { // (0,1]            // Fade the page out.            view.setAlpha(1 - position);            // Counteract the default slide transition            view.setTranslationX(pageWidth * -position);            // Scale the page down (between MIN_SCALE and 1)            float scaleFactor = MIN_SCALE                    + (1 - MIN_SCALE) * (1 - Math.abs(position));            view.setScaleX(scaleFactor);            view.setScaleY(scaleFactor);        } else { // (1,+Infinity]            // This page is way off-screen to the right.            view.setAlpha(0);        }    }}


2 0
原创粉丝点击