Android获取吐司位置

时间:2015-09-15 10:07:26

标签: android android-toast

我能够获取每个(默认)Toast消息,但我想添加应用程序图标。如何从吐司视图/小部件中获取位置?

我的吐司捕手是AccessibilityService,我希望AccessibilityEvent有一些有用的东西,但我找不到包含所需数据的属性。

编辑:CyanogenMod添加了它,我想用我的应用程序将它实现到股票android。

Example toast

3 个答案:

答案 0 :(得分:0)

您可以更改Toast Message的位置

setGravity(int gravity, int xOffset, int yOffset)

如果你知道你的Toast留言位置,你只需相应地设置你的图标位置doc

答案 1 :(得分:0)

您可以尝试自定义吐司吗?

随附的屏幕截图。

enter image description here

<强> custom_toast_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toastParent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#F08080"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginRight="10dp"
        android:contentDescription="@string/app_name" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFF" />

</LinearLayout>

Java类

private void displayToast(){
   LayoutInflater inflater = getLayoutInflater();
   View layout = inflater.inflate(R.layout.custom_toast_view, (ViewGroup) findViewById(R.id.toastParent));
   ImageView image = (ImageView) layout.findViewById(R.id.image);
   image.setImageResource(R.drawable.ic_launcher);
   TextView text = (TextView) layout.findViewById(R.id.text);
   text.setText("Hello! This is a custom toast!");
   Toast toast = new Toast(getApplicationContext());
   toast.setDuration(Toast.LENGTH_LONG);
   toast.setView(layout);
   toast.show();
}

希望这会对你有所帮助。

答案 2 :(得分:0)

使用以下代码,您可以从屏幕底部获取默认Toast Y偏移量:

int i = Resources.getSystem().getIdentifier("toast_y_offset", "dimen", "android");
int bottomOffset = getResources().getDimensionPixelSize(i);

然后只需将图片放在屏幕底部,底部填充== bottomOffset

回答&#34;我从哪里获得左侧位置?&#34;:

Toast使用android:layout_gravity =&#34; center_horizo​​ntal&#34;对齐文本和默认文本大小。因此,您可以计算此文本将占用多少空间(如果您知道确切的文本是什么):Calculating width of a string on Android。然后左偏移可以计算为(screenWidth - textWidth) / 2