android 整合友盟分享之後,想自訂分享面板的看過來

來源:互聯網
上載者:User

標籤:fill   parent   vertica   icon   登入   linear   自訂分享   roi   draw   

第一種情況

首先上傳一張預設的友盟分享的

看起來還不錯,但是總是有這樣那樣的原因,需要我們對預設效果做出一些改變。

第二種情況

如果你想做出下面的效果:

或者這樣的效果 :

總之上面的效果總是在預設的基礎上(及原有的控制項基礎上做出改變,改變顏色,背景,背景顏色等等一些基本的改變),
如果你真的遇到了這樣的需求很簡單:你可以直接登入友盟的開發文檔中有十分詳細的介紹,很簡單的
下面是一些:


好,結束。
你可以直接進去看。

第三章情況

有了前兩種情況,如果還沒有滿足你的需求,那麼咱們今天的重點來了。你想要完全自訂。
例如我們項目需要達到下面的效果

我看了友盟開發文檔,可以改變上面Textview的顏色,但是我想給它後面加一張背景圖片,很顯然滿足不了我的需求,友盟沒有給我提供
方法和介面。怎麼辦呢?

下面用dialog自訂的方式實現

(1)定義view 的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="wrap_content"    android:background="@color/white"    android:orientation="vertical" >  <RelativeLayout      android:layout_width="match_parent"      android:layout_height="@dimen/dip_80"      android:background="@drawable/fxyl_tk_bg">      <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:textColor="@color/whites"          android:text="您的邀請碼:123456"          android:layout_alignParentBottom="true"          android:layout_marginBottom="@dimen/dip_8"          android:layout_centerHorizontal="true"/>  </RelativeLayout>    <LinearLayout        android:layout_marginTop="@dimen/dip_20"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <RelativeLayout            android:id="@+id/view_share_weixin"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1" >            <ImageView            android:id="@+id/share_icon"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerHorizontal="true"            android:src="@drawable/wxx" />            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_below="@id/share_icon"                android:layout_centerHorizontal="true"                android:layout_marginTop="@dimen/dip_13"                android:text="" />        </RelativeLayout>        <RelativeLayout            android:id="@+id/view_share_weixinfriend"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1" >            <ImageView                android:id="@+id/share_icon2"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerHorizontal="true"                android:src="@drawable/pyqx" />            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_below="@id/share_icon2"                android:layout_centerHorizontal="true"                android:layout_marginTop="@dimen/dip_13"                android:text="朋友圈" />        </RelativeLayout>        <RelativeLayout            android:id="@+id/view_share_qq"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1" >            <ImageView                android:id="@+id/share_icon3"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerHorizontal="true"                android:src="@drawable/qqx" />            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_below="@id/share_icon3"                android:layout_centerHorizontal="true"                android:layout_marginTop="@dimen/dip_13"                android:text="QQ" />        </RelativeLayout>        <RelativeLayout            android:id="@+id/share_qqzone"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1" >            <ImageView                android:id="@+id/share_icon4"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerHorizontal="true"                android:src="@drawable/kjx" />            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_below="@id/share_icon4"                android:layout_centerHorizontal="true"                android:layout_marginTop="@dimen/dip_13"                android:text="QQ空間" />        </RelativeLayout>    </LinearLayout>    <TextView        android:layout_marginTop="@dimen/dip_10"        android:layout_marginBottom="@dimen/dip_10"        android:id="@+id/share_cancel_btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:text="取消" /></LinearLayout>

(2)在dialog中inflater 自訂view

 private void showShareDialog() {        View view = LayoutInflater.from(ACountryTour.this).inflate(R.layout.customshare_layout, null);        // 設定style 控制預設dialog帶來的邊距問題        final Dialog dialog = new Dialog(this, R.style.common_dialog);        dialog.setContentView(view);        dialog.show();        // 監聽        View.OnClickListener listener = new View.OnClickListener() {            @Override            public void onClick(View v) {                switch (v.getId()) {                    case R.id.view_share_weixin:                        // 分享到                        share(SHARE_MEDIA.WEIXIN);                        break;                    case R.id.view_share_weixinfriend:                        // 分享到朋友圈                       share(SHARE_MEDIA.WEIXIN_CIRCLE);                        break;                    case R.id.view_share_qq:                        // 分享到qq                       share(SHARE_MEDIA.QQ);                        break;                    case R.id.share_qqzone:                        // 分享到qq空間                          share(SHARE_MEDIA.QZONE);                        break;                    case R.id.share_cancel_btn:                        // 取消                        break;                }                dialog.dismiss();            }        };        ViewGroup mViewWeixin = (ViewGroup) view.findViewById(R.id.view_share_weixin);        ViewGroup mViewPengyou = (ViewGroup) view.findViewById(R.id.view_share_weixinfriend);        ViewGroup mViewqq= (ViewGroup) view.findViewById(R.id.view_share_qq);        ViewGroup mViewqqzone = (ViewGroup) view.findViewById(R.id.share_qqzone);        TextView mBtnCancel = (TextView) view.findViewById(R.id.share_cancel_btn);        mViewWeixin.setOnClickListener(listener);        mViewPengyou.setOnClickListener(listener);        mViewqq.setOnClickListener(listener);        mViewqqzone.setOnClickListener(listener);        mBtnCancel.setOnClickListener(listener);        // 設定相關位置,一定要在 show()之後        Window window = dialog.getWindow();        window.getDecorView().setPadding(0, 0, 0, 0);        WindowManager.LayoutParams params = window.getAttributes();        params.width = ViewGroup.LayoutParams.MATCH_PARENT;        params.gravity = Gravity.BOTTOM;        window.setAttributes(params);    }

完美實現了效果

注意:

1.定義dialog的彈窗位置:

2.實現底部對齊充滿螢幕屬性後發現會有邊距,這時候需要重新定義dialog style,預設情況下的style中是帶有padiing的

<!-- 預設的style -->     <style name="common_dialog" parent="@android:style/Theme.Dialog">         <item name="android:windowBackground">@android:color/transparent</item>         <item name="android:windowNoTitle">true</item>     </style>  

謝謝你來過。android君與你共勉。有需要完整代碼的請留言。

android 整合友盟分享之後,想自訂分享面板的看過來

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.