成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Android仿新浪微博發送菜單界面的實現

瀏覽:212日期:2022-06-05 18:52:11
效果圖

Android仿新浪微博發送菜單界面的實現

接下來就是一波貼代碼的過程

自定義Dialog

public class SinaSendView extends Dialog { private ImageButton ib_dialog_sina_close; private LinearLayout ll_dialog_sina_write; private LinearLayout ll_dialog_sina_time; private LinearLayout ll_dialog_sina_map; private LinearLayout ll_dialog_sina_menu; private ImageView iv_dialog_sina_bg,iv_dialog_sina_des; private Context mContext; private Boolean hideDes; private Bitmap screenShot; private Bitmap bitmap; private ByteArrayOutputStream baos; private byte[] bytes; public SinaSendView(Context context) { super(context); this.mContext = context; } public SinaSendView(Context context, int themeResId,Boolean hideDes) { super(context, themeResId); this.mContext = context; this.hideDes = hideDes; } protected SinaSendView(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); this.mContext = context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.layout_sina_send_dialog); ib_dialog_sina_close = (ImageButton) findViewById(R.id.ib_dialog_sina_close); ll_dialog_sina_write = (LinearLayout) findViewById(R.id.ll_dialog_sina_write); ll_dialog_sina_time = (LinearLayout) findViewById(R.id.ll_dialog_sina_time); ll_dialog_sina_map = (LinearLayout) findViewById(R.id.ll_dialog_sina_map); ll_dialog_sina_menu = (LinearLayout) findViewById(R.id.ll_dialog_sina_menu); iv_dialog_sina_bg = (ImageView) findViewById(R.id.iv_dialog_sina_bg); iv_dialog_sina_des = (ImageView) findViewById(R.id.iv_dialog_sina_des); initView(); } private void initView() { setBrulBg(); ll_dialog_sina_menu.setVisibility(View.VISIBLE); ll_dialog_sina_menu.setAnimation(AnimationUtil.moveToViewLocationFromTop()); ib_dialog_sina_close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {ll_dialog_sina_menu.setAnimation(AnimationUtil.moveToViewBottom());ll_dialog_sina_menu.setVisibility(View.GONE);dismiss(); } }); if(hideDes){ iv_dialog_sina_des.setVisibility(View.GONE); } } /** * 設置模糊背景 */ private void setBrulBg(){ screenShot = CommonUtils.getInstance().getScreenShot((Activity) mContext); bitmap = CommonUtils.getInstance().zoomImg(screenShot, 0.2f); baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 1, baos); bytes = baos.toByteArray(); Glide.with(mContext).load(bytes).asBitmap().transform(new BlurTransformation(CommonUtils.getInstance().getContext(), 25)).into(iv_dialog_sina_bg); } public void setClick(final SinaSendDialog mSinaSendDialog){ this.show(); ll_dialog_sina_write.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {mSinaSendDialog.onNormalClick();dismiss(); } }); ll_dialog_sina_map.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {mSinaSendDialog.onMapClick();dismiss(); } }); ll_dialog_sina_time.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {mSinaSendDialog.onTimeClick();dismiss(); } }); } @Override public void dismiss() { super.dismiss(); if(screenShot != null && !screenShot.isRecycled()){ screenShot.recycle(); screenShot = null; } if(bitmap != null && !bitmap.isRecycled()){ bitmap.recycle(); bitmap = null; } try { baos.close(); } catch (IOException e) { e.printStackTrace(); } bytes = null; System.gc(); }}布局文件

<?xml version='1.0' encoding='utf-8'?><FrameLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' > <ImageView android: android:layout_width='match_parent' android:layout_height='match_parent' android:scaleType='fitXY' /> <ImageButton android: android:layout_width='15dp' android:layout_height='15dp' android:src='http://www.piao2010.com/bcjs/@drawable/dialog_sina_send_close' android:background='@null' android:layout_gravity='bottom|center_horizontal' android:layout_marginBottom='17dp' /> <ImageView android:layout_width='match_parent' android:layout_height='0.5dp' android:background='@color/line_gray' android:layout_gravity='bottom' android:layout_marginBottom='50dp' /> <LinearLayout android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_gravity='bottom|center_horizontal' android:layout_marginBottom='120dp' android:orientation='horizontal' android:visibility='gone' > <LinearLayout android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:orientation='vertical' android:gravity='center_horizontal' > <ImageViewandroid:layout_width='75dp'android:layout_height='75dp'android:src='http://www.piao2010.com/bcjs/@drawable/dialog_sina_send_write'/> <TextViewandroid:layout_width='wrap_content'android:layout_height='wrap_content'android:textSize='13sp'android:textColor='@color/text_gray'android:text='一般內容'android:layout_marginTop='8dp'/> </LinearLayout> <LinearLayout android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:orientation='vertical' android:gravity='center_horizontal' android:layout_marginLeft='35dp' android:layout_marginRight='35dp' > <ImageViewandroid:layout_width='75dp'android:layout_height='75dp'android:src='http://www.piao2010.com/bcjs/@drawable/dialog_sina_send_time'/> <TextViewandroid:layout_width='wrap_content'android:layout_height='wrap_content'android:textSize='13sp'android:textColor='@color/text_gray'android:text='時間膠囊'android:layout_marginTop='8dp'/> </LinearLayout> <LinearLayout android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:orientation='vertical' android:gravity='center_horizontal' > <ImageViewandroid:layout_width='75dp'android:layout_height='75dp'android:src='http://www.piao2010.com/bcjs/@drawable/dialog_sina_send_map'/> <TextViewandroid:layout_width='wrap_content'android:layout_height='wrap_content'android:textSize='13sp'android:textColor='@color/text_gray'android:text='地點膠囊'android:layout_marginTop='8dp'/> </LinearLayout> </LinearLayout> <ImageView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:src='http://www.piao2010.com/bcjs/@drawable/dialog_sina_send_des' android:layout_gravity='center_horizontal' android:layout_marginTop='70dp' /></FrameLayout>Style

<style name='SinaSendDialog'> <item name='android:windowFullscreen'>true</item> <item name='android:windowNoTitle'>true</item> <item name='android:windowBackground'>@android:color/transparent</item></style>工具方法

/** * 從控件的頂部移動到控件所在位置 * * @return */ public static TranslateAnimation moveToViewLocationFromTop() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,-1.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(500); return mHiddenAction; } /** * 截取當前屏幕 * @param activity * @return */ public Bitmap getScreenShot(Activity activity) { // 獲取windows中最頂層的view View view = activity.getWindow().getDecorView(); view.buildDrawingCache(); // 獲取狀態欄高度 Rect rect = new Rect(); view.getWindowVisibleDisplayFrame(rect); int statusBarHeights = rect.top; Display display = activity.getWindowManager().getDefaultDisplay(); // 獲取屏幕寬和高 int widths = display.getWidth(); int heights = display.getHeight(); // 允許當前窗口保存緩存信息 view.setDrawingCacheEnabled(true); // 去掉狀態欄 Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache(), 0,0, widths, heights); // 銷毀緩存信息 view.destroyDrawingCache(); return bmp; } /** * 改變bitmap寬高 * @param bm * @param f * @return */ public Bitmap zoomImg(Bitmap bm,float f){ int width = bm.getWidth(); int height = bm.getHeight(); float scaleWidth = f; float scaleHeight = f; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true); return newbm; }接口

public interface SinaSendDialog { void onNormalClick(); void onTimeClick(); void onMapClick();}

基本講一下邏輯,背景采用截屏高斯模糊處理,這里一定要降圖片質量,不然會慢,按鈕采用一個動畫從上向下劃出,雖然不是特別完美,但是多少有個樣子。

源碼地址:

https://github.com/bertsir/SinaSendView

到這里就結束啦.

以上就是Android仿新浪微博發送菜單界面的實現的詳細內容,更多關于Android 發送菜單界面的實現的資料請關注好吧啦網其它相關文章!

標簽: 微博
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
午夜精品久久久久久久99水蜜桃 | 亚洲成人av资源| 不卡电影免费在线播放一区| 久久一区视频| 亚洲一区二区不卡免费| 一区免费视频| 欧美色区777第一页| 一区二区三区电影在线播| 一区在线电影| 精品国产伦一区二区三区免费| 精品一区二区在线视频| 色婷婷av一区| 石原莉奈一区二区三区在线观看| 一本一本久久| 亚洲精品成人在线| 亚洲国产清纯| 国产精品国模大尺度视频| av亚洲精华国产精华| 欧美不卡一二三| 国产乱码精品一区二区三区忘忧草 | 亚洲视频免费在线| 成人a免费在线看| 制服丝袜亚洲网站| 精品一区二区国语对白| 欧美视频一区二区在线观看| 奇米色一区二区| 日本韩国精品在线| 美女视频黄免费的久久| 久久资源在线| 日韩专区中文字幕一区二区| 国产精品女主播一区二区三区| 国产性做久久久久久| av电影天堂一区二区在线观看| 欧美不卡123| 不卡av在线免费观看| 欧美精品一区二区三区一线天视频| 国产成人av电影| 91黄色免费观看| 免费成人av资源网| 欧美电影在线免费观看| 丁香网亚洲国际| 久久欧美中文字幕| 牛人盗摄一区二区三区视频| 2020日本不卡一区二区视频| 成人动漫一区二区三区| 2021中文字幕一区亚洲| 91免费观看视频在线| 中文字幕一区日韩精品欧美| 国产精品色网| 老司机精品视频一区二区三区| 欧美日韩国产高清一区二区| 成人综合婷婷国产精品久久蜜臀| 久久亚洲一级片| 在线成人亚洲| 日韩激情中文字幕| 欧美美女一区二区三区| caoporn国产精品| 国产精品国产a级| 宅男噜噜噜66国产日韩在线观看| **性色生活片久久毛片| 国产精品一区毛片| 久久狠狠亚洲综合| 久久久久久久久久美女| 亚洲深夜影院| 激情五月播播久久久精品| 精品成人佐山爱一区二区| 在线成人h网| 日本vs亚洲vs韩国一区三区二区| 制服.丝袜.亚洲.另类.中文| 欧美日韩岛国| 婷婷激情综合网| 欧美一区二区三区在线观看视频| 成人久久久精品乱码一区二区三区| 欧美成人一区二区三区| 粗大黑人巨茎大战欧美成人| 国产精品久久网站| 亚洲一区视频| 激情欧美日韩一区二区| 欧美一卡二卡在线| 91麻豆成人久久精品二区三区| 国产精品美女一区二区三区 | 欧美精品一区二区三区很污很色的| 成人教育av在线| 国产精品美女久久久久aⅴ | 国产午夜精品福利| 影音先锋久久| 亚洲永久免费av| 欧美日韩一区三区| 久久电影网电视剧免费观看| 久久久久国产成人精品亚洲午夜| 激情五月***国产精品| 一区二区三区高清| 欧美少妇一区二区| 成人黄色小视频在线观看| 中文欧美字幕免费| 亚洲欧美日韩国产综合精品二区| 日日夜夜免费精品视频| 国产伦精品一区二区三区视频黑人| 亚洲成人自拍偷拍| 欧美美女视频在线观看| 91蝌蚪国产九色| 国产亚洲欧洲997久久综合| 久久婷婷人人澡人人喊人人爽| 韩国一区二区视频| 中文字幕不卡的av| 欧美专区一区二区三区| 国产精品亚洲一区二区三区在线 | 亚洲一级二级三级在线免费观看| 欧美午夜精品久久久| 99精品黄色片免费大全| 亚洲人成亚洲人成在线观看图片| 玖玖玖国产精品| 免费成人在线网站| 欧美韩国日本综合| 亚洲欧美日韩国产一区| 成人综合日日夜夜| 亚洲另类在线视频| 欧美日韩一区二区三区视频| 欧美视频官网| 蜜臀av性久久久久蜜臀aⅴ四虎 | 精品88久久久久88久久久| 一区一区视频| 男女激情视频一区| 久久婷婷成人综合色| 99av国产精品欲麻豆| 韩国成人精品a∨在线观看| 国产精品国产自产拍高清av| 在线视频国内自拍亚洲视频| 国产成人自拍高清视频在线免费播放| 亚洲一区二区三区四区中文字幕| 欧美一区二区精品在线| 亚洲欧洲一区二区在线观看| 国产精品一区二区久久不卡| 亚洲美女免费在线| 日韩免费一区二区三区在线播放| 亚洲精品一区二区三区樱花| 国产综合色在线视频区| 国产精品久久精品日日| 欧美在线小视频| 国产精品xxx在线观看www| 九九精品一区二区| 亚洲色欲色欲www| 日韩欧美一二三四区| 欧美一级播放| 午夜国产精品视频| 国产一区在线精品| 午夜天堂影视香蕉久久| 欧美v亚洲v综合ⅴ国产v| 亚洲图片在线| 色综合天天视频在线观看| 麻豆国产91在线播放| 一区二区三区在线看| 久久久久青草大香线综合精品| 日本电影欧美片| 亚洲日产国产精品| www.欧美亚洲| 亚洲国产精华液网站w | 一本到不卡精品视频在线观看| 欧美大香线蕉线伊人久久国产精品| 奇米精品一区二区三区四区 | 亚洲综合视频网| 中文字幕欧美三区| 欧美日韩一区二区三区视频| 激情文学一区| 成人三级伦理片| 国产精品77777| 琪琪久久久久日韩精品| 亚洲尤物视频在线| 一区免费观看视频| 2020国产成人综合网| 欧美性一区二区| 亚洲一区二区高清视频| 午夜精品999| 激情小说亚洲一区| 一区二区三区小说| 夜夜亚洲天天久久| ...av二区三区久久精品| 欧美mv日韩mv国产| 777欧美精品| 在线观看欧美日本| 久久精彩视频| 国产精品久久久久9999高清| 国产日韩欧美在线播放不卡| 亚洲欧美伊人| www.一区二区| 国产成人高清在线| 国产综合一区二区| 麻豆91在线播放| 日韩精品一区二| 欧美日韩不卡在线| 在线观看亚洲专区| 色丁香久综合在线久综合在线观看| 99精品视频免费观看| 欧美日韩综合另类| 欧美精品二区| 欧美日韩p片| 色综合久久综合| 91香蕉视频在线| 欧美日韩在线一二三| 99久久婷婷国产综合精品|