知识点
相关文章
更多最近更新
更多android 使用Activity做窗口弹出(模拟Dialog)
2019-03-02 00:49|来源: 网路
我们下面使用Activity,模拟一个dialog:
首先看布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="270dp" android:layout_height="wrap_content" android:gravity="center_horizontal" > <!--标题--> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="分享到哪里?" android:textSize="18sp" android:padding="10dp" android:textColor="@color/dialog_title_color" android:gravity="center_horizontal" /> <!--分割线--> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/bg_action_bar_color" /> <!--分享到哪里--> <GridView android:id="@+id/dialog_share_grid_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:listSelector="@drawable/empty_selector" android:numColumns="3" android:horizontalSpacing="10dp" android:verticalSpacing="15dp" android:layout_margin="10dp" /> </LinearLayout>
然后是该Activity
package cn.via.dageeeOrderFood.activity; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import cn.via.dageeeOrderFood.R; /** * Created by Heyiyong on 2014-3-5 上午9:12. */ public class ShareActivity extends Activity { private int[] shareIcons = { R.drawable.ic_share_duanxin, R.drawable.ic_share_pengyouquan, R.drawable.ic_share_qq, R.drawable.ic_share_qqkongjian, R.drawable.ic_share_weixin, }; private String[] shareTitles = { "短信", "朋友圈", "QQ好友", "QQ空间", "微信" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_share); GridView gridView = (GridView) findViewById(R.id.dialog_share_grid_view); gridView.setAdapter(new BaseAdapter() { @Override public int getCount() { return shareIcons.length; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View itemView = View.inflate(ShareActivity.this, R.layout.item_share_grid_view, null); ((ImageView) itemView.findViewById(R.id.item_share_img)).setImageResource(shareIcons[i]); ((TextView) itemView.findViewById(R.id.item_share_tv)).setText(shareTitles[i]); return itemView; } }); } }
gridView的item布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:background="@drawable/share_grid_view_item_selector_xml" > <ImageView android:id="@+id/item_share_img" android:layout_width="56dp" android:layout_height="56dp" android:src="@drawable/ic_share_duanxin" android:padding="4dp" /> <TextView android:id="@+id/item_share_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="短信" android:textSize="13sp" android:layout_marginTop="3dp" android:textColor="@color/dialog_content_color" /> </LinearLayout>
最后在AndroidManifest文件:
<!--分享的dialogActivity--> <activity android:name=".activity.ShareActivity" android:theme="@style/dialogActivity" />
其中theme为:
<!--用activity模拟dialog--> <style name="dialogActivity"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowBackground">@drawable/dialog_bg_update</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">true</item> </style>
drawable/dialog_bg_update.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/dialog_background_color"/> <!--<stroke android:color="#ff5e5e5e" android:width="1dp"/>--> <stroke android:color="@color/bg_action_bar_color" android:width="1dp"/> <corners android:radius="10dp"/> </shape>
drawable/share_grid_view_item_selector_xml.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/item_press_color"/> <corners android:radius="5dp"/> </shape> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/dialog_background_color"/> </shape> </item> </selector>
转自:http://www.cnblogs.com/wuyou/p/3581836
相关问答
更多-
如何使Android dialog弹出后的Android activity背景不变暗[2022-12-28]
没人使用么? 使用对话框时不让激活它的activity保持平常时的亮度 -
android弹出dialog后,activity得到焦点的问题[2023-08-19]
android 4.0以上的系统默认的情况就是设置了setCanceledOnTouchOutside(true)这个属性的,所以你在实例dialog的时候,认为设置成false就行。 -
Android如何判断当前窗口是Activity还是Dialog[2024-04-30]
你拿到当前窗口的对象, 判断它是Activity的类对象还是Dialog的类对象不就行了! -
如何使Android dialog弹出后的Android activity背景不变暗[2022-05-05]
第一种是在样式文件styles.xml中添加新的样式,父样式指向的是默认的Dialog样式,修改如下,然后你的Dialog用你添加的样式就可以了. 第二种是在代码中修改.lp.alpha大小随自己要求设置 // 设置屏幕背景变暗 private void setScreenBgDarken() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 0.5f; lp.dimAmount = 0.5f; getWind ... -
android dialog怎么在底部弹出窗口[2021-12-16]
android 4.0以上的系统默认的情况就是设置了setCanceledOnTouchOutside(true)这个属性的,所以你在实例dialog的时候,认为设置成false就行。 -
Android图像对话框/弹出窗口(Android Image Dialog/Popup)[2022-11-07]
如果你只是想使用一个正式的对话框这样的事情应该工作 Dialog settingsDialog = new Dialog(this); settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.image_layout , null)); settingsDialog.show(); ... -
正确的方法来实现自定义弹出窗口?(correct way to implement a custom popup window? Activity vs. Dialog vs. AlertDialog)[2022-05-28]
我认为最好使用选项#2或#3。 如果您只是向用户显示其他内容,用户将不会与Dialog中的视图交互 - 我认为,#3是最佳选择。 相反(例如,如果你将有复杂的布局与其他按钮等)使用#2。 PS:同样,现代的方式 - 使用DialogFragment而不是Dialogs。 I think will better to use option #2 or #3. If you will just show additional content to user and user will not interact ... -
如何使android dialog弹出后的android activity背景模糊[2023-07-05]
在style 的xml 里 设置如下 设置为true, 背景变暗 Dialog = new Dialog(Activity, R.style.dialog); -
从你开始弹出窗口的任何地方通过调用此startActivityForResult(your_intent,requestCode)调用它 它将启动活动,并在弹出活动中这样做 Bundle bundle = new Bundle(); bundle.putString("position", param1); Intent mIntent = new Intent(); mIntent.putExtras(bundle); setResult(RESULT_OK, mIntent); finish(); ...
-
如何使用android studio中的弹出窗口按钮打开新活动?(How to open new activity using popup window button in android studio?)[2022-10-13]
May get the question wrong but was able to call GameController activity from button in you popmenu xml: `