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);
}
}
}