Android常用

来源:互联网 发布:网络面试注意事项 编辑:程序博客网 时间:2024/06/06 17:34

Toast:

自定义:

LayoutInflater inflater  = LayoutInflater.from(getContext());
View toast_view = inflater.inflate(R.layout.fragment_dongtainull);
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.setSingleChoiceItemsnew 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 如果值为真,该控件将被至于垂直方向的中
-->

 

扩展知识:

EditTextandroid: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 
使当前控件的右端和父控件的右端对齐。这里属性值只能为truefalse,默认false 

android:scaleType 
android:scaleType是控制图片如何resized/moved来匹对ImageViewsizeImageView.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    如果值为真,该控件将被至于垂直方向的中央

第一类:属性值为truefalse 

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  本元素的右边缘和某元素的的右边缘对齐 

第三类:属性值为具体的像素值,如30dip40px 
    android:layout_marginBottom              离某元素底边缘的距离 
    android:layout_marginLeft                   离某元素左边缘的距离 
    android:layout_marginRight                 离某元素右边缘的距离 
    android:layout_marginTop                   离某元素上边缘的距离 


EditTextandroid: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 
使当前控件的右端和父控件的右端对齐。这里属性值只能为truefalse,默认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界面动画效果的APIAnimations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。 

二、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的四个子类:
  AlphaAnimationTranslateAnimationScaleAnimationRotateAnimation

Android常用跳转动画

Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。
{它包括两个部分:
一部分是第一个activity退出时的动画;
另外一部分时第二个activity进入时的动画;
Android2.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);     

实现zoominzoomout,即类似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>  



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击