android退出后toast还在
2015-07-21 20:58:09 u012995294 阅读数 542

     Android中退出的时候产生Toast的同时,销毁activity,退出application的操作模式

第一段是产生一个提示,销毁整个App的时候提示用户要点击两次才能退出,同时结合toast功能的实例如图片中所示

      

public boolean  onKeyDown (int keyCode, KeyEvent event){
        if((keyCode == KeyEvent.KEYCODE_BACK)&&(event.getAction() == KeyEvent.ACTION_DOWN))
        {
            // exitTime 是计算的时间,一般初始值给的是0
            if(System.currentTimeMillis() - exitTime >2000) // 2s内再次选择back键有效
            {
                System.out.println(Toast.LENGTH_LONG);// 此处可以写上输出也可以不写 在测试代码的地方可以看到
                Toast.makeText(this, "请在按一次返回退出", Toast.LENGTH_LONG).show();
                exitTime = System.currentTimeMillis();
            }
            else {
                finish();
                System.exit(0); //凡是非零都表示异常退出!0表示正常退出!
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    

     这个是Toast的用法,具体的参数设置如下:

      第一个参数:当前上下文的环境,可以用getApplicationContext()或者this

      第二个参数:要显示的内容,也可以是R.string 中的字符串ID

      第三个参数:要显示的时间的长短,默认的是LENGTH_LONG和LENGTH_SHORT或者写山具体的数字,如3000,单位为毫秒,即为3000毫秒

      然后使用toast.show()方法来显示即可。

      下面的第二段代码可以用来设置一些具体的位置,对齐方式,文本的位置等等。

    

Toast.makeText(this, "请在按一次返回退出", Toast.LENGTH_LONG).show();
Toast.makeText(this, "Toast text, normal", Toast.LENGTH_SHORT).show(); // 基本的设置方法 
    Toast t2=Toast.makeText(this, "Toast text with specific position", Toast.LENGTH_LONG);  //  新建一个
    t2.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM, 0, 10); //设置文本的位置,使文本显示靠下一些
    t2.show();


2015-09-11 15:52:53 u012689060 阅读数 635


Shap:使用场景 解决圆角问题

shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <!-- 圆角 -->
    <corners
        <span style="color:#ff6666;">android:radius="9dp"</span>
        android:topLeftRadius="2dp"
        android:topRightRadius="2dp"
        android:bottomLeftRadius="2dp"
        android:bottomRightRadius="2dp"/><!-- 设置圆角半径 -->
    
    <!-- 渐变 -->
    <gradient
        android:startColor="@android:color/white"
        android:centerColor="@android:color/black"
        android:endColor="@android:color/black"
        android:useLevel="true"
        android:angle="45"
        android:type="radial"
        android:centerX="0"
        android:centerY="0"
        android:gradientRadius="90"/>
    
    <!-- 间隔 -->
    <padding
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"/><!-- 各方向的间隔 -->
    
    <!-- 大小 -->
    <size
        android:width="50dp"
        android:height="50dp"/><!-- 宽度和高度 -->
    
    <!-- 填充 -->
    <solid
        android:color="@android:color/white"/><!-- 填充的颜色 -->
    
    <!-- 描边 -->
    <stroke
        android:width="2dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"
        android:dashGap="2dp"/>
    
</shape></span>


selector:图片,文字点击效果

图片:state          drawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/" android:state_selected="true"/>
    <item android:drawable="@drawable/" android:state_pressed="true"/>
    <item android:drawable="@drawable/" android:state_pressed="false"/>
</selector>

android:state_pressed 

如果是true,当被点击时显示该图片,如果是false没被按下时显示默认。


android:state_focused 

如果是true,获得焦点时显示;如果是false没获得焦点显示默认。


android:state_selected

如果是true,当被选择时显示该图片;是false未被选择时显示该图片。


android:state_checkable

 如果值为true,当CheckBox能使用时显示该图片;false,当CheckBox不能使用时显示该图片。


android:state_checked

如果值为true,当CheckBox选中时显示该图片;false,当CheckBox为选中时显示该图片。


android:state_enabled

如果值为true,当该组件能使用时显示该图片;false,当该组件不能使用时显示该图片。

 

android:state_window_focused

如果值为true,当此activity获得焦点在最前面时显示该图片;false,当没在最前面时显示该图片。


文字:state color

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:<span style="color:#ff0000;">color</span>="#000000" android:<span style="color:#ff0000;">state</span>_selected="true"/>
    <item android:color="@color/black" android:state_pressed="false"/>
</selector>


animation: 动画效果

1.帧动画

2.补间动画

旋转rotate 平移translate 渐变alpha 大小scale


3.属性动画


Toast:防止程序退出,还在弹

其实很简单,Toast有个cancel 方法 onDestroy()调用一下就ok了。

声明Toast对象

	 private Toast mToast = new Toast(this); //在OnCreate中
	 private  LayoutInflater inflater = LayoutInflater.from(this);
	 private View viewToast = inflater.inflate(R.layout.mtoast, null);//自定义Toast布局
	 mToast.setView(view);//加载
	 mToast.setDuration(1000);//设置显示时间
	 
	 mToast.cancel();//onDestroy中
package com.ly.myfrawork.widget;

import android.content.Context;
import android.view.View;
import android.widget.Toast;

/************************************************
 * @版权: Copyright (c) 1998-2014 *********公司技术开发部
 * @创建人版本: 刘洋 E-mail:465282857@qq.com
 * @版本: 1.0
 * @创建日期: 2015-8-7 上午10:09:22
 * @类描述:
 * 
 * @修改记录:
 * @版本:
 ************************************************/
@Deprecated
public class MyToast
{
private Toast mToast;


public MyToast(Context context)
{
mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
}


public void show(String context)
{
mToast.setText(context);
mToast.show();
}


public void cancel()
{
mToast.cancel();
}


public void setView(View view)
{
mToast.setView(view);
}
}

推荐application中统一Toast

	static Toast tosToast;

	public static void makeText(String msg)
	{
		if (tosToast != null)
			tosToast.cancel();
		tosToast = Toast.makeText(mContext, msg, Toast.LENGTH_LONG);
		tosToast.show();
	}



2013-06-13 09:34:40 lansehaiyang007 阅读数 1991

本人开发的一个安卓版app小游戏,疯狂猜明星android版,图标看起来很搞笑,有点京剧变脸的味道。朋友们小手一抖,下载支持下。谢谢了大笑

在使用App和学习android应用程序开发的过程中,应用退出最常使用的是对话框退出和Toast二次提示退出App。很对NB的应用都用第二种方式退出App.

1.使用对话框退出应用程序:

//对话框退出App        
@Override
	public void onBackPressed() {
		new AlertDialog.Builder(this).setTitle("确认退出数独Style吗?") 
	    .setIcon(android.R.drawable.ic_dialog_info) 
	    .setPositiveButton("确定", new DialogInterface.OnClickListener() { 
	 
	        @Override 
	        public void onClick(DialogInterface dialog, int which) { 
	        // 点击“确认”后的操作 
	        Main.this.finish(); 
                System.exit(0);
	 
	        } 
	    }) 
	    .setNegativeButton("返回", new DialogInterface.OnClickListener() { 
	 
	        @Override 
	        public void onClick(DialogInterface dialog, int which) { 
	        // 点击“返回”后的操作,这里不设置没有任何操作 
	        } 
	    }).show(); 
		//super.onBackPressed();
	}
2.使用Toast进行二次确认退出应用程序:
     /**
     * Toast退出应用
     */
    private long mExitTime;
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
                if ((System.currentTimeMillis() - mExitTime) > 2000) {
                        Object mHelperUtils;
                        Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                        mExitTime = System.currentTimeMillis();

                } else {
                	Main.this.finish();
        	        System.exit(0);
                }
                return true;
        }
        return super.onKeyDown(keyCode, event);
    }

2012-05-23 15:19:39 ljz2009y 阅读数 1030


当一个activity播放一个音乐文件的时候。后退看是否会结束这个应用,activity结束但是声音并没有结束的原因。

  
应该是这个意思,media 使用的是系统的服务来进行播放文件,所以当back之后,虽然activity被销毁的,但是还是service没有被销毁,所以音乐会继续播放、、底层的代码在:

frameworks/base/media/jni/的 android_media_MediaPlayer.cpp



2014-04-23 16:17:42 sang770253794 阅读数 21
1.概述
Toast是一种简洁提示视图,它浮现于应用程序之上,并不获得焦点,所以不会影响输入。

2.常量
int LENGTH_LONG
持续显示视图或文本提示较长的时间。该事件长度可以定制。

int LENGTH_SHORT
持续显示视图或文本提示较短的时间。可定制,该值为默认值

参见 setDuration(int)

3.构造函数

public Toast (Context context)
构造一个空的Toast对象。在调用show()之前,必须先调用setView()方法。只有使用setView()的时候才使用new Toast()构造toast对象,否则必须用makeText()方法来构建对象。并且这种方式获取的Toast对象不能使用setText更改文本信息。

Context使用的上下文,通常是你的application或者activity对象。

4.公共方法

public int cancel ()
如果视图已经显示则将其关闭,没有显示则不再显示。一般不需要调用该方法。正常情况下,视图会在超过设置的持续时长后自动消失。

public int getDuration ()
返回存续期间
参阅: setDuration(int)

public int getGravity ()
获取提示信息在屏幕上显示的位置。
参阅:Gravity setGravity()

public float getHorizontalMargin ()
返回横向栏外的空白。

public float getVerticalMargin ()
返回纵向栏外空白。

public View getView ()
返回 View 对象。
参阅:setView(View)

public int getXOffset ()
返回相对于参照位置的横向偏移像素量。

Toast msg = Toast.makeText(Main.this, "Message", Toast.LENGTH_LONG);
msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
msg.show();


public int getYOffset ()
返回相对于参照位置的纵向偏移像素量。

public static Toast makeText (Context context, int resId, int duration)
生成一个从资源中取得的包含文本视图的标准 Toast 对象。
参数
context 使用的上下文。通常是你的 Application 或 Activity 对象。
resId 要使用的字符串资源ID,可以是已格式化文本。
duration 该信息的存续期间。值为 LENGTH_SHORT 或 LENGTH_LON

     异常
      当资源未找到时抛异常Resources.NotFoundException

public static Toast makeText (Context context, CharSequence text, int duration)
生成一个包含文本视图的标准 Toast 对象。
参数
context 使用的上下文。通常是你的 Application 或 Activity 对象。
text 要显示的文本,可以是已格式化文本。
duration 该信息的存续期间。值为 LENGTH_SHORT 或 LENGTH_LONG


public void setDuration (int duration)
设置存续期间。
请参阅
LENGTH_SHORT
LENGTH_LONG

public void setGravity (int gravity, int xOffset, int yOffset)
设置提示信息在屏幕上的显示位置。
请参阅
Gravity
getGravity()

public void setMargin (float horizontalMargin, float verticalMargin)
设置视图的栏外空白。
参数
horizontalMargin 容器的边缘与提示信息的横向空白(与容器宽度的比)。
verticalMargin 容器的边缘与提示信息的纵向空白(与容器高度的比)。

public void setText (int resId)
更新之前通过 makeText() 方法生成的 Toast 对象的文本内容。
参数
resId 为 Toast 指定的新的字符串资源ID。

public void setText (CharSequence s)
更新之前通过 makeText() 方法生成的 Toast 对象的文本内容。
参数
s 为 Toast 指定的新的文本。

public void setView (View view)
设置要显示的 View 。
(译者注:注意这个方法可以显示自定义的toast视图,可以包含图像,文字等等。是比较常用的方法。)
请参阅
getView()

public void show ()
按照指定的存续期间显示提示信息。


[b][color=red]以上为ToastAPI中文说明,转载于http://www.cnblogs.com/over140/archive/2010/11/12/1875403.html[/color][/b]
也可以直接到android查看官方版


Activity类
package com.example.activitys;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
* Toast两种显示方式
*
* 使用View显示时,需要注意LayoutInflater的使用,它的主要功能是将Layout中的xml文件转换为View,它是专门供Layout使用的inflater。
* 虽然Layout也是View的子类,但是在Android中如果想将xml文件中的Layout转换为View放入Java代码中操作,只能通过Inflater,而不能通过findViewById()。
*
* @author Administrator
*/
public class ToastActivity extends Activity
{

/**
* 直接显示
*/
private OnClickListener btnToastClickHandler = new OnClickListener()
{

@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
showToast("测试信息1");
}

};

/**
* 使用View显示
*/
private OnClickListener btnToastViewClickHandler = new OnClickListener()
{

@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

//XML转换为view
View view = (View)inflater.inflate(R.layout.toastview, null);

showToastView("测试信息2",view);
}

};

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

this.setContentView(R.layout.toast);

//获取组件对象并监听Click事件
Button btn_toast = (Button)this.findViewById(R.id.btn_toast);
btn_toast.setOnClickListener(btnToastClickHandler);

Button btn_toast_view = (Button)this.findViewById(R.id.btn_toast_ivew);
btn_toast_view.setOnClickListener(btnToastViewClickHandler);

}


/**
* Toast提示
* @param str
*/
public void showToast(String v)
{
Toast toast = Toast.makeText(this, v, Toast.LENGTH_SHORT);

//设置toast显示的位置
toast.setGravity(Gravity.CENTER, 0, 180);
//显示toast
toast.show();
}

/**
* Toast使用View提示
* @param v
* @param view
*/
public void showToastView(String v,View view)
{
Toast toast = new Toast(this);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setView(view);
TextView text = (TextView)view.findViewById(R.id.texttoast);
text.setText(v); // 此处将v改成"显示Toast",不知为何最终结果只显示一个"显"字。其余文字均无问题。
toast.show();
}

}


toastview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<!-- android:contentDescription="@string/app_name" 避免编辑器的警告提示 -->
<ImageView
android:id="@+id/imagetoast"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/texttoast"
android:text="@string/btn_toast_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:width="100dp"/>

</LinearLayout>



toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
android:id="@+id/btn_toast"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn_toast"/>


<Button
android:id="@+id/btn_toast_ivew"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn_toast_view"/>

</LinearLayout>

android Toast

阅读数 1123

6.1.Toast6.1.1.概述Toast类用于显示字符串,在开发过程中测试时可以用来代替日志输出调试信息。也常用于给用户简短提示,不需要用户确认,例如:下载MP3完成后弹出一个Toast提示下载完成。6.1.2.常用方法1、makeText(Contextr context, Charsequence message, int duration);作用:创建一个To

博文 来自: wangliang198901

android Toast

阅读数 702

Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(),"默认Toast样式",     Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果代码

博文 来自: ylchou

Android Toast

阅读数 131

Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。1.默认效果代码Toast.makeText(getApplicationContext(),"默认Toast样式",     Toast.LENGTH_SHORT).show(); 2.自定义显示位置效果代码

博文 来自: yuchen352416

Android——Toast

阅读数 425

一、Toast常用方法(1)Toast.makeText(context,text,duration);//返回值为Toast(2)toast.setDuration(duration); //设置持续时间(3)toast.setGravity(gravity,xOffset,yOffset);//设置toast位置,gravity可为Gravity.XXXX(4)toast.

博文 来自: yunwen3344

Android Toast

阅读数 99

AndroidToast

博文 来自: liuchangdong007
没有更多推荐了,返回首页