不知道为什么不能使width的值随意变大。可以改变width的值在400dp以下,如果超过400dp的话,toast的宽度就固定不变了,怎么才能使其变大呢? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <RelativeLayout android:id="@+id/toast_layout_root" android:layout_width="561dp" android:layout_height="121dp" android:background="@drawable/bg_toast" android:visibility="visible" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/hello_world" /> </RelativeLayout> </RelativeLayout> 源代码是这样的 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast sToast = new Toast(getApplication()); LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.activity_main, null); layout.findViewById(R.id.toast_layout_root).setVisibility(View.VISIBLE); int tmp = 370; if(getResources().getDisplayMetrics().densityDpi==160) tmp = 270; sToast.setGravity(Gravity.CENTER, 0, tmp); sToast.setDuration(Toast.LENGTH_LONG); sToast.setView(layout); sToast.show(); } |
|
10分 |
你手机像素是多少? 400dp 有没有超过手机像素宽度?
|
1920×1080,dpi为320,确定没超过,toast只占屏幕的一小部分。,图中包裹图片的layout大小是一样的,但装载到toast中就变得很小了。 |
|
10分 |
楼主,这个问题解决了吗?我遇到跟你一样的问题。
无论width赋什么值,出来的Toast都是一个正方形。郁闷中、、、 |
设置子view的宽度和高度可以改变整个toast的大小toast_layout_root.getLayoutParams().width
|
|
什么意思啊 我在xml里面改变宽度还是无效啊 |
|
Toast t = Toast.makeText(this, “Hello”, Toast.LENGTH_SHORT);
t.setGravity(Gravity.FILL_HORIZONTAL, 0, 0); 这样就可以了 |