Android常用
来源:互联网 发布:网络面试注意事项 编辑:程序博客网 时间:2024/06/06 17:34
Toast:
自定义:
LayoutInflater inflater = LayoutInflater.from(getContext());
View toast_view = inflater.inflate(R.layout.fragment_dongtai, null);
Toast toast = new Toast(getContext());
toast.setView(toast_view);
toast.show();
带图片:
Toast toast = Toast.makeText(getContext(),"带有图片的通知", Toast.LENGTH_SHORT);
LinearLayout toast_layout = (LinearLayout) toast.getView();
ImageView iv = new ImageView(getContext());
iv.setImageResource(R.mipmap.ic_launcher);
toast_layout.addView(iv, 0);
toast.show();
Dialog
普通:
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("个人信息进入");
builder.setIcon(R.mipmap.ic_launcher);
builder.setMessage("确定对话框提示内容");
builder.setPositiveButton("确定你妈逼", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getContext(), "点了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消你妈逼", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getContext(), "点了取消", Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
单选:
无setMessage()
Builder.setSingleChoiceItems(new String[],0,new DialogInterface.onclickListener(){
})
自定义:
LayoutInflater inflater = LayoutInflater.from(getContext());
View view = inflater.inflate(R.layout.fragment_more,null);
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("个人信息进入");
builder.setIcon(R.mipmap.ic_launcher);
builder.setView(view);
AlertDialog dialog = builder.create();
dialog.show();
Notification:
private NotificationManager manager;
int id;
manager =(NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(getContext());
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setTicker("hello");//手机状态栏的提示
builder.setWhen(System.currentTimeMillis());//设置时间
builder.setContentTitle("通知栏通知");
builder.setContentText("通知内容");
Intent intent = new Intent(getContext(),Fragmentdongtai.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getContext(),0,intent,0);
builder.setContentIntent(pendingIntent);//点击后的意图
builder.setDefaults(Notification.DEFAULT_SOUND);//提示声音
builder.setDefaults(Notification.DEFAULT_LIGHTS);//指示灯
builder.setDefaults(Notification.DEFAULT_VIBRATE);//震动
Notification notification = builder.build();
manager.notify(id,notification);
Manager.cancel(id )
菜单
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_item1:
Toast.makeText(this,"点击了菜单一",1000).show();
break;
case R.id.action_item2:
Toast.makeText(this,"而阿斯顿",1000).show();
break;
case R.id.action_item3:
Toast.makeText(this,"而阿斯顿",1000).show();
break;
}
return true;
}
ContextMeun菜单
public void showListview(){
ListView listView = (ListView) findViewById(R.id.listview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1,getData());
listView.setAdapter(adapter);
this.registerForContextMenu(listView);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("文件操作");
menu.setHeaderIcon(R.mipmap.ic_launcher);
/*menu.add(1, 1, 1, "复制");
menu.add(1,2,1,"粘贴");
menu.add(1,3,1,"删除");
menu.add(1,4,1,"详情");*/
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.action_item1:
Toast.makeText(this,"asdasd",1000).show();
break;
case R.id.action_item2:
Toast.makeText(this,"asdasd",1000).show();
break;
case R.id.action_item3:
Toast.makeText(this,"asdasd",1000).show();
break;
case 4:
Toast.makeText(this,"asdasd",1000).show();
break;
}
return super.onContextItemSelected(item);
}
private ArrayList<String> getData(){
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<5;i++){
list.add("文件"+(i+1));
}
return list;
}
SubMenu
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
/*getMenuInflater().inflate(R.menu.menu_main, menu);*/
SubMenu me1 = menu.addSubMenu("文件");
SubMenu me2 = menu.addSubMenu("编辑");
me1.setHeaderTitle("wenjian");
me1.setHeaderIcon(R.mipmap.ic_launcher);
me1.add(1,2,1,"xinjian");
me1.add(1,1,1,"asdxinjian");
me1.add(1,3,1,"xinjian");
me1.add(1,4,1,"xinjian");
me2.setHeaderIcon(R.mipmap.ic_launcher);
me2.setHeaderTitle("bianji");
me2.add(2,1,1,"xinjian");
me2.add(2,2,1,"xinjian");
me2.add(2,3,1,"xinjian");
me2.add(2,4,1,"xinjian");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getGroupId() ==1) {
switch (item.getItemId()) {
case 1:
Toast.makeText(this, "点击了菜单一", 1000).show();
break;
case 2:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
case 3:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
}
}
if (item.getGroupId() == 2) {
switch (item.getItemId()) {
case 1:
Toast.makeText(this, "点击了菜单一", 1000).show();
break;
case 2:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
case 3:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
}
}
return true;
}
xml方式:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:showAsAction="never"
android:title="文件">
<menu>
<item
android:id="@+id/aa"
android:showAsAction="never"
android:title="复制" />
<item
android:id="@+id/bb"
android:showAsAction="never"
android:title="粘贴" />
<item
android:id="@+id/cc"
android:showAsAction="never"
android:title="剪切" />
</menu>
</item>
<item
android:showAsAction="never"
android:title="编辑">
<menu>
<item
android:id="@+id/dd"
android:showAsAction="never"
android:title="大"
/>
<item
android:id="@+id/ee"
android:showAsAction="never"
android:title="大"
/>
<item
android:id="@+id/ff"
android:showAsAction="never"
android:title="大"
/>
</menu>
</item>
</menu>
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.aa:
Toast.makeText(this, "点击了菜单一", 1000).show();
break;
case R.id.bb:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
case R.id.cc:
Toast.makeText(this, "而阿斯顿", 1000).show();
break;
}
return true;
}
Fragment
静态加载
Main:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
Button button = (Button) findViewById(R.id.button);
final TextView textView = (TextView) findViewById(R.id.text);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("点击了");
}
});
}
Fragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment,container,false);
TextView textView = (TextView) view.findViewById(R.id.text);
textView.setText("静态加载");
return view;
}
Main2:
<fragment
android:id="@+id/frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.example.wenguang.myapplication.MyFragment"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="asdasdasds"
/>
Fragment:
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
动态加载:
Main:
MyFragment2 fragment2 = new MyFragment2();
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame2,fragment2);
fragmentTransaction.commit();
Activity_main:
<LinearLayout
android:id="@+id/frame2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
传递信息互相通信
Activity-->Fragment
Activity:
public void onClick(View v) {
String text = editText.getText().toString();
MyFragment5 myFragment5 = new MyFragment5();
Bundle bundle = new Bundle();
bundle.putString("name",text);
myFragment5.setArguments(bundle);
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.layout,myFragment5,"aaa");
fragmentTransaction.commit();
Fragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main2,container,false);
TextView textView = (TextView) view.findViewById(R.id.text);
String text = getArguments().get("name")+"";
textView.setText(text);
Toast.makeText(getActivity(),"成功接受到",1000).show();
return view ;
}
Fragment-->Activity
public class MyFragment5 extends Fragment {
private String code= "thank";
private MyListener myListener;
public interface MyListener{
public void thank(String code);
}
@Override
public void onAttach(Activity activity) {
myListener = (MyListener)activity;
super.onAttach(activity);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main2,container,false);
TextView textView = (TextView) view.findViewById(R.id.text);
String text = getArguments().get("name")+"";
textView.setText(text);
Toast.makeText(getActivity(),"成功接受到",1000).show();
myListener.thank(code);
return view ;
}
}
public class MyMainActivity4 extends Activity implements MyFragment5.MyListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main4);
final EditText editText = (EditText) findViewById(R.id.editText);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString();
MyFragment5 myFragment5 = new MyFragment5();
Bundle bundle = new Bundle();
bundle.putString("name",text);
myFragment5.setArguments(bundle);
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.layout,myFragment5,"aaa");
fragmentTransaction.commit();
Toast.makeText(MyMainActivity4.this,"发送成功",1000).show();
}
});
}
@Override
public void thank(String code) {
Toast.makeText(this,"客气了",1000).show();
}
}
MainAcivity中,主布局定义的ID按钮跳转,在其子布局中,也可以得到其ID进行跳转,可以重新布局,让其ID相同,则有相同的功能。另外Fragment中,动态布局不能有静态布局代码,不然在其子布局中也会出现静态代码,除非子布局是LISTView,或者全部是ScrollView,不然只能在其布局上覆盖,并给覆盖的按钮点击消除
Android 控件布局常用属性
<!--单个控件经常用到
android:id —— 为控件指定相应的ID
android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
android:grivity —— 指定控件的基本位置,比如说居中,居右等位置
android:textSize —— 指定控件当中字体的大小
android:background —— 指定该控件所使用的背景色,RGB命名法
android:width —— 指定控件的宽度
android:height —— 指定控件的高度
android:padding* —— 指定控件的内边距,也就是说控件当中的内容
android:sigleLine —— 如果设置为真的话,则将控件的内容在同一行当中进行显示
-->
<!--相对布局时经常用到
android:layout_above 将该控件的底部至于给定ID的控件之上
android:layout_below 将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐
android:alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft 如果该值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight 如果该值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop 如果该值为true,则将空间的顶部与父控件的顶部对齐
android:layout_centerHorizontal 如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent 如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical 如果值为真,该控件将被至于垂直方向的中央
-->
扩展知识:
EditText的android:hint
设置EditText为空时输入框内的提示信息。
android:gravity
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
android:scaleType:
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
layout对齐属性总结
android:layout_above 将该控件的底部至于给定ID的控件之上
android:layout_below 将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐
android:alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft 如果该值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight 如果该值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop 如果该值为true,则将空间的顶部与父控件的顶部对齐
android:layout_centerHorizontal 如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent 如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical 如果值为真,该控件将被至于垂直方向的中央
第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
EditText的android:hint
设置EditText为空时输入框内的提示信息。
android:gravity
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
android:lineSpacingMultiplier="0.8"
设置组距
快捷键
Alt+回车 导入包,自动修正
Ctrl+N 查找类
Ctrl+Shift+N 查找文件
Ctrl+Alt+L 格式化代码
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等)
Ctrl+E或者Alt+Shift+C 最近更改的代码
Ctrl+R 替换文本
Ctrl+F 查找文本
Ctrl+Shift+Space 自动补全代码
Ctrl+空格 代码提示
Ctrl+Alt+Space 类名或接口名提示
Ctrl+P 方法参数提示
Ctrl+Shift+Alt+N 查找类中的方法或变量
Alt+Shift+C 对比最近修改的代码
Shift+F6 重构-重命名
Ctrl+Shift+先上键
Ctrl+Y 删除行(ctrl+x不是删除行,是剪切。如果不选中,则为剪切当行。ths for 貌似掉线)
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )
Ctrl+J 自动代码
Ctrl+E 最近打开的文件
Ctrl+H 显示类结构图
Ctrl+Q 显示注释文档
Alt+F1 查找代码所在位置
Alt+1 快速打开或隐藏工程面板
Ctrl+Alt+ left/right 返回至上次浏览的位置
Alt+ left/right 切换代码视图
Alt+ Up/Down 在方法间快速移动定位
Ctrl+Shift+Up/Down 代码向上/下移动。
F2 或Shift+F2 高亮错误或警告快速定位
代码标签输入完成后,按Tab,生成代码。
选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。
Ctrl+W 选中代码,连续按会有其他效果
选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示。
Ctrl+Up/Down 光标跳转到第一行或最后一行下
Ctrl+B 快速打开光标处的类或方法
最常用快捷键
1.Ctrl+E,可以显示最近编辑的文件列表
2.Shift+Click可以关闭文件
3.Ctrl+[或]可以跳到大括号的开头结尾
4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方
5.Ctrl+F12,可以显示当前文件的结构
6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择
7.Ctrl+N,可以快速打开类
8.Ctrl+Shift+N,可以快速打开文件
9.Alt+Q可以看到当前方法的声明
10.Ctrl+W可以选择单词继而语句继而行继而函数
11.Alt+F1可以将正在编辑的元素在各个面板中定位
12.Ctrl+P,可以显示参数信息
13.Ctrl+Shift+Insert可以选择剪贴板内容并插入
14.Alt+Insert可以生成构造器/Getter/Setter等
15.Ctrl+Alt+V 可以引入变量。例如把括号内的SQL赋成一个变量
16.Ctrl+Alt+T可以把代码包在一块内,例如try/catch
17.Alt+Up and Alt+Down可在方法间快速移动
下面的不是很有用
18.在一些地方按Alt+Enter可以得到一些Intention Action,例如将”==”改为”equals()”
19.Ctrl+Shift+Alt+N可以快速打开符号
20.Ctrl+Shift+Space在很多时候都能够给出Smart提示
21.Alt+F3可以快速寻找
22.Ctrl+/和Ctrl+Shift+/可以注释代码
23.Ctrl+Alt+B可以跳转到抽象方法的实现
24.Ctrl+O可以选择父类的方法进行重写
25.Ctrl+Q可以看JavaDoc
26.Ctrl+Alt+Space是类名自动完成
27.快速打开类/文件/符号时,可以使用通配符,也可以使用缩写
28.Live Templates! Ctrl+J
29.Ctrl+Shift+F7可以高亮当前元素在当前文件中的使用
30.Ctrl+Alt+Up /Ctrl+Alt+Down可以快速跳转搜索结果
31.Ctrl+Shift+J可以整合两行
32.Alt+F8是计算变量值
Visibility:
Visible:可见 ,返回值为0
Invisible:不可见但是占用布局,返回值为4
Gone:不可见不占用布局,返回值为8
Animations
一、Animations介绍
Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。
二、Animations的分类
Animations从总体上可以分为两大类:
1.Tweened Animations:该类Animations提供了旋转、移动、伸展和淡出等效果。Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Translate——移动效果。
2.Frame-by-frame Animations:这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。
三、Animations的使用方法(代码中使用)
Animations extends Object implements Cloneable
使用TweenedAnimations的步骤:
1.创建一个AnimationSet对象(Animation子类);
2.增加需要创建相应的Animation对象;
3.更加项目的需求,为Animation对象设置相应的数据;
4.将Animatin对象添加到AnimationSet对象当中;
5.使用控件对象开始执行AnimationSet。
//创建一个AnimationSet对象,参数为Boolean型,
//true表示使用Animation的interpolator,false则是使用自己的
nimationSet animationSet = new AnimationSet(true);
//创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
//设置动画执行的时间
alphaAnimation.setDuration(500);
//将alphaAnimation对象添加到AnimationSet当中
animationSet.addAnimation(alphaAnimation);
//使用ImageView的startAnimation方法执行动画
image.startAnimation(animationSet);
Tweened Animations的分类
1、Alpha:淡入淡出效果
2、Scale:缩放效果
3、Rotate:旋转效果
4、Translate:移动效果
Animation的四个子类:
AlphaAnimation、TranslateAnimation、ScaleAnimation、RotateAnimation
Android常用跳转动画
Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。
{它包括两个部分:
一部分是第一个activity退出时的动画;
另外一部分时第二个activity进入时的动画;
在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是overridePendingTransition
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.SplashScreen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent mainIntent = new Intent(SplashScreen.this, AndroidNews.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.mainfadein,
R.anim.splashfadeout);
}
}, 3000);
}
上面的代码只是闪屏的一部分。
getWindow (). setWindowAnimations ( int );
getWindow (). setWindowAnimations ( int );
这可没有上个好但是也可以 。
实现淡入淡出的效果1
overridePendingTransition(R.anim.splash_screen_fade, R.anim.splash_screen_hold);
实现淡入淡出的效果2
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
由左向右滑入的效果
overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);
实现zoomin和zoomout,即类似iphone的进入和退出时的效果
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
新建zoomin.xml文件
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.android.com/apk/res/android"
Android:interpolator="@android:anim/decelerate_interpolator">
<scale Android:fromXScale="2.0" android:toXScale="1.0"
Android:fromYScale="2.0" android:toYScale="1.0"
Android:pivotX="50%p" android:pivotY="50%p"
Android:duration="@android:integer/config_mediumAnimTime" />
</set>
新建zoomout.xml文件
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.android.com/apk/res/android"
Android:interpolator="@android:anim/decelerate_interpolator"
Android:zAdjustment="top">
<scale Android:fromXScale="1.0" android:toXScale=".5"
Android:fromYScale="1.0" android:toYScale=".5"
Android:pivotX="50%p" android:pivotY="50%p"
Android:duration="@android:integer/config_mediumAnimTime" />
<alpha Android:fromAlpha="1.0" android:toAlpha="0"
Android:duration="@android:integer/config_mediumAnimTime"/>
</set>
- android常用
- Android 常用
- Android常用
- Android常用
- Android常用
- Android android 常用API
- Android 常用技巧
- Android常用Dialog总结
- 常用的android
- Android 常用开发术语
- Android ListView常用用法
- Android 常用代码集合
- Android常用类库包介绍
- android常用代码片段
- Android 开发常用网站
- 常用Android资料网站
- android 常用组建案例
- android常用Wifi类
- java 拦截器,监听器,过滤器比较
- PHP 构造和析构
- mysql重启命令
- svm性别识别及HOG特征原理浅析
- Appium自动化测试工具环境配置[IOS]
- Android常用
- python 流控制 if else, elif
- hibernate进阶--一/二级缓存策略
- 用Wikidata做实体搜索的两种方案
- Java 中 extends 使用时的小漏洞
- 编译LibLas
- activemq jms 学习
- Java WebSocket——一个简单的例子(注解式)
- 树形结构的处理——组合模式(三):杀毒软件框架结构的解决方案