AdPlayBanner:功能豐富、一鍵式使用的圖片輪播插件

概述

AdPlayBanner:功能豐富、一鍵式使用的圖片輪播插件

詳細

代碼下載:http://www.demodashi.com/demo/11312.html

AdPlayBanner是一個Android平臺基于ViewPager實現的輪播圖插件,主要用以自動或者手動地播放輪播圖,提供了Fresco、Picasso、Glide等圖片加載方式供用戶使用,以及多種圖片切換動畫,設置輪播時間,設置數據源順序,提供不同分頁指示器等功能,實現了一鍵式、靈活式的控件使用方式。下面是效果圖:

目前AdPlayBanner已經開源到了Github上面,大家可以在Github上面查看本控件的Demo,或者直接使用。

Github地址為:https://github.com/ryanlijianchang/AdPlayBanner

一、使用方法

1.添加依賴

首先,在項目級別的build.gradle文件添加依賴:

allprojects {repositories {...maven { url 'https://jitpack.io' }}
}

然后,在模塊目錄下的build.gradle文件添加依賴:

dependencies {compile 'com.github.ryanlijianchang:AdPlayBanner:v0.2'
}

2.在布局文件中添加控件

在布局文件中添加AdPlayBanner控件,根據自己的需要設置高度,注意,控件需要在一個布局(可以是LinearLayout,RelativeLayout,FrameLayout等)之內。

<com.ryane.banner_lib.AdPlayBannerandroid:id="@+id/game_banner"android:layout_width="match_parent"android:layout_height="200dp" />

3.在Activity中綁定控件

mAdPlayBanner = (AdPlayBanner) findViewById(R.id.game_banner);

4.添加網絡權限

由于加載的是網絡圖片,所以需要在Manifests文件中添加網絡請求權限

<uses-permission android:name="android.permission.INTERNET" />

5.初始化Fresco

默認使用Fresco加載圖片,所以按照Fresco官方做法,需要在Application創建時初始化Fresco,常規做法如下:

(1) 創建MyApplication類繼承Application,然后在onCreate()方法中初始化Fresco:

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);}
}

(2) 在Manifests文件中標簽中增加?android:name="你的類名":

<applicationandroid:name=".MyApplication"...>...</application>

當然,如果你不使用Fresco加載,以上步驟可以跳過。

6.一鍵式使用

AdPlayBanner使用了Builder設計模式,所以可以通過一鍵式寫法來直接裝載AdPlayBanner,當然也可以使用常規寫法。在使用之前需要先設置數據源,使用ArrayList來封裝數據,而AdPageInfo是一個封裝好的Bean類,封裝如下:

public class AdPageInfo implements Parcelable {public String title;    // 廣告標題public String picUrl;   // 廣告圖片urlpublic String clickUlr; // 圖片點擊urlpublic int order;       // 順序
}

在設置完數據源mDatas之后,使用Builder模式寫法,一句話就可以使用AdPlayBanner了。注意,setUp()方法必須在調用完所有API之后,最后調用:

mAdPlayBanner.setInfoList(mDatas).setUp();

當然,你也可以使用常規寫法:

mAdPlayBanner.setInfoList(mDatas);
mAdPlayBanner.setUp();

7.關閉AdPlayBanner

在顯示AdPlayBanner的頁面生命周期到達onDestroy()時,建議調用mAdPlayBanner.stop()方法結束AdPlayBanner,避免內存泄漏。

二、功能介紹

1.自定義數據順序

在調用setUp()方法之前,我們需要設置數據源,每一頁的數據使用AdPageInfo來封裝,它里面就有一個int型變量order,我們通過給每一個AdPageInfo賦值order,AdPlayBanner就會自動按照order的大小來排序,如:

我們封裝了三個數據到ArrayList里面,按順序是圖片1->圖片2->圖片3

List<AdPageInfo> mDatas = new ArrayList<>();
AdPageInfo info1 = new AdPageInfo("圖片1", "http://osjnd854m.bkt.clouddn.com/pic1_meitu_1.jpg", "鏈接1", 3);
AdPageInfo info2 = new AdPageInfo("圖片2", "http://osjnd854m.bkt.clouddn.com/pic1_meitu_2.jpg", "鏈接2", 2);
AdPageInfo info3 = new AdPageInfo("圖片3", "http://osjnd854m.bkt.clouddn.com/pic1_meitu_3.jpg", "鏈接3", 1);
mDatas.add(info1);
mDatas.add(info2);
mDatas.add(info3);

裝載之后運行,可見輪播順序是按照order的順序來播放:

2.無限循環輪播

很多輪播插件沒有實現無限循環輪播這個功能, 而在AdPlayBanner上得到了實現,如下圖可見,當我們無限循環滑動時,插件仍能正常運行:

3.支持三種圖片加載方式

目前比較主流的Fresco、Picasso、Glide三種圖片加載方式在AdPlayBanner中都支持,至于三者的區別我就不贅述了,默認是使用Fresco方式加載,具體調用方法setImageLoadType(ImageLoaderType type),只需要將傳入數據設置為:FRESCOGLIDEPICASSO其中一種即可,同樣,也是可以通過代碼一鍵式使用,例如使用Glide方式加載(其他加載方式使用類似),使用方法如下:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setImageLoadType(Glide)    // 設置Glide類型的圖片加載方式.setUp();

4.支持多種ScaleType

在AdPlayBanner中,可以根據用戶需要設置圖片的ScaleType,具體效果和ImageView的ScaleType一致,默認是使用FIT_XY,但是在AdPlayBanner中比ImageView少了一種MATRIX類型,在AdPlayBanner中具體支持的ScaleType有如下:FIT_XYFIT_STARTFIT_CENTERFIT_ENDCENTERCENTER_CROPCENTER_INSIDE其中,具體調用方法setImageViewScaleType(ScaleType scaleType),只需要將具體的ScaleType傳入即可,同樣,也是可以通過代碼一鍵式使用,例如設置ScaleType為FIT_START(其他類似),使用方法如下:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setImageViewScaleType(FIT_START)   // 設置FIT_START類型的ScaleType.setUp();

5.支持不同頁碼指示器

在AdPlayBanner中,提供了數字型點型空型頁碼指示器,用戶可以通過調用setIndicatorType(IndicatorType type),傳入NONE_INDICATORNUMBER_INDICATORPOINT_INDICATOR其中一種,即可顯示對應的頁碼指示器,三種頁碼指示器對應效果如下:

(1)?NONE_INDICATOR:空型頁碼指示器

(2)?NUMBER_INDICATOR:數字頁碼指示器

(3)?POINT_INDICATOR:點型頁碼指示器

使用方法也是非常簡單,如我需要使用數字型頁碼指示器,使用方法如下:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(NUMBER_INDICATOR)     //使用數字頁碼指示器.setUp();

此外,你也可以調用setNumberViewColor(int normalColor, int selectedColor, int numberColor)來修改數字型頁碼指示器的樣式,normalColor為數字沒選中時的背景顏色,selectedColor為數字選中時的背景顏色,numberColor為數字的字體顏色,例如我通過調用這個方法,把三個顏色都改變掉(注意:傳入int型顏色必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效),使用方法如下:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(NUMBER_INDICATOR)     //使用數字頁碼指示器.setNumberViewColor(0xff00ffff, 0xffff3333, 0xff0000ff).setUp();

得到如下效果:

6.添加靈活性標題

在AdPlayBanner中,只需要調用addTitleView(TitleView mTitleView),就可以插入標題了,并且該標題的靈活性很強,可以根據用戶需要修改標題的背景、位置、字體大小、padding、magin等,先上一個提供的默認效果:

由于是使用了默認的效果,所以用法也是非常簡單:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(POINT_INDICATOR)     //使用數字頁碼指示器.addTitleView(TitleView.getDefaultTitleView(getApplicationContext()))  // 使用默認標題.setUp();

我們可以看到我們通過調用addTitleView(TitleView mTitleView),傳入一個TitleView即可以生成標題,而上面是調用了AdPlayBanner提供的一個默認標題,當然,我們也說了這個標題的靈活性很強,就是我們可以設置TitleView的屬性,我們來看一下TitleView提供了哪些API:

  • TitleView setTitleColor(int color):設置標題字體顏色,傳入color必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效。

  • setPosition(Gravity gravity):設置標題在AdPlayBanner中的位置,有PARENT_TOP,PARENT_BOTTOM,PARENT_CENTER三個取值,分別位于父布局頂部,父布局底部,父布局中間。

  • setViewBackground(int color):設置標題的背景顏色,傳入int型顏色必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效。

  • TitleView setTitleSize(int size):設置標題的字體大小,單位是sp。

  • setTitleMargin(int left, int top, int right, int bottom):設置標題的四個方向margin值,單位是dp。

  • setTitlePadding(int left, int top, int right, int bottom):設置標題的四個方向padding值,單位是dp。

同樣,TitleView也是支持Builder模式的寫法,例如我自定義一個TitleVIew并加到AdPlayBanner中,使用方法如下:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(POINT_INDICATOR)     // 使用數字頁碼指示器.addTitleView(new TitleView(getApplicationContext())    // 創建新的TitleView.setPosition(PARENT_TOP).setTitleColor(0xffffffff)          // 設置字體顏色.setViewBackground(0x9944ff18)      // 設置標題背景顏色.setTitleSize(18)                   // 設置字體大小.setTitleMargin(0,0,2,0)           // 設置margin值.setTitlePadding(2,2,2,2))          // 設置padding值.setUp();

效果如下:

7.支持多樣式切換動畫

由于AdPlayBanner是基于ViewPager實現的,所以AdPlayBanner和ViewPager一樣,同樣支持自定義的切換動畫,只需要通過調用setPageTransfromer(ViewPager.PageTransformer transformer)方法,傳入一個PageTransformer,即可改變它的切換樣式,AdPlayBanner中提供了三種現成的切換方式:

  • FadeInFadeOutTransformer:淡入淡出效果

  • RotateDownTransformer:旋轉效果

  • ZoomOutPageTransformer: 空間切換效果

使用起來也是非常簡單,例如使用ZoomOutPageTransformer切換效果:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(POINT_INDICATOR)     // 使用數字頁碼指示器.setBannerBackground(0xff000000)       // 設置背景顏色.setPageTransfromer(new ZoomOutPageTransformer())   // 設置切換效果.setUp();

當然,你也可以自定義一個transformer實現ViewPager.PageTransformer接口,并重寫transformPage(View view, float position)方法即可實現自定義的切換效果。

8.設置是否自動輪播

通過調用setAutoPlay(boolean autoPlay),傳入boolean值控制是否自動播放的開關,傳入true為自動,傳入false為手動。

9.設置自動滑動間隔時間

通過調用setInterval(int interval),傳入int型的時間(單位ms),即可改變AdPlayBanner自動輪播時的切換時間。

10.設置點擊事件監聽器

AdPlayBanner支持點擊事件監聽,通過調用setOnPageClickListener(OnPageClickListener l),傳入OnPageClickListener,即可完成AdPlayBanner的點擊監聽,使用方法非常簡單:

mAdPlayBanner.setInfoList((ArrayList<AdPageInfo>) mDatas).setIndicatorType(POINT_INDICATOR)     // 使用數字頁碼指示器.setOnPageClickListener(new AdPlayBanner.OnPageClickListener() {@Overridepublic void onPageClick(AdPageInfo info, int postion) {// 點擊操作}}).setUp();

三、API

AdPlayBanner:實現輪播效果的控件

AdPlayBanner解釋備注
addTitleView(TitleView mTitleView)添加一個TitleView可以通過TitleView.getDefaultTitleView(Context context)來使用默認的TitleView或者通過new Title()的方式傳入
setBannerBackground(int color)設置AdPlayBanner的背景顏色傳入color必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效
setIndicatorType(IndicatorType type)設置頁碼指示器類型傳入NONE_INDICATORNUMBER_INDICATORPOINT_INDICATOR其中一種
setInterval(int interval)設置自動輪播時的切換時間單位ms
setImageLoadType(ImageLoaderType type)設置圖片加載方式傳入FRESCOGLIDEPICASSO其中一種
setPageTransfromer(ViewPager.PageTransformer transformer)設置切換動畫,如果不設置動畫,設置為null提供了FadeInFadeOutTransformerRotateDownTransformerZoomOutPageTransformer三種,也可以傳入自定義的TransFormer
setNumberViewColor(int normalColor, int selectedColor, int numberColor)設置數字頁碼的顏色normalColor 數字正常背景顏色,selectedColor 數字選中背景顏色,numberColor 數字字體顏色
setOnPageClickListener(OnPageClickListener l)設置事件點擊監聽器傳入一個OnPageClickListener
setImageViewScaleType(ScaleType scaleType)設置圖片的ScaleType傳入FIT_XYFIT_STARTFIT_CENTERFIT_ENDCENTERCENTER_CROPCENTER_INSIDE其中一種
setAutoPlay(boolean autoPlay)設置是否自動播放默認為true 自動播放,傳入false為手動
setInfoList(ArrayList pageInfos)設置Banner的數據源傳入必須為AdPageInfo類型的ArrayList
setUp()裝載AdPlayBanner必須在以上所有方法調用完之后才能調用

TitleView : 標題控件

TitleView解釋備注
getDefaultTitleView(Context context)獲取一個默認的TitleView傳入一個Context
setTitleSize(int size)設置字體大小單位sp
setTitleColor(int color)設置字體顏色傳入color必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效
setViewBackground(int color)設置標題背景傳入color必須ARGB8888的顏色類型,或者通過資源文件定義顏色再獲取才有效
setPosition(Gravity gravity)設置標題在Banner的位置只能PARENT_TOP,PARENT_BOTTOM,PARENT_CENTER其中一個值
setTitleMargin(int left, int top, int right, int bottom)設置標題的margin值單位dp
setTitlePadding(int left, int top, int right, int bottom)設置標題的padding值單位dp

AdPageInfo:AdPlayView指定的數據源

AdPageInfo解釋備注
AdPageInfo(String title, String picUrl, String clickUlr, int order)構造方法?
void setTitle(String title)設置標題?
String getTitle()獲取標題?
void setPicUrl(String picUrl)設置圖片源地址?
String getPicUrl()獲取圖片鏈接?
void setClickUlr(String clickUlr)設置點擊事件地址?
String getClickUlr()獲取點擊事件鏈接?
void setOrder(int order)設置排序的優先級設置了order,AdPlayBanner會根據order的大小由小到大排序
int getOrder()獲取排序優先級?

四、版本特性

v0.1

  1. 基本框架搭建完成;

V0.2

  1. 支持定義數據順序;

  2. 無限循環輪播;

  3. 支持Fresco、Glide、Picasso三種圖片加載方式;

  4. 支持多種ScaleType;

  5. 支持點型、數字型、空型頁碼指示器;支持修改數字型頁碼器的樣式;

  6. 支持靈活性標題;支持修改標題的位置、字體大小、顏色、邊距值等屬性;

  7. 支持多樣式切換動畫;

  8. 支持設置自動輪播開關;

  9. 自定義自動滑動間隔時間;

  10. 提供點擊事件監聽器;

  11. 支持修改AdPlayBanner的背景顏色;

V0.3

  1. 修復了靜態變量造成的內存泄漏問題;

  2. 提供手動結束Banner播放的接口;

五、Demo

如果大家在使用在仍然有問題,可以通過下載Demo來學習,當然,大家更可以通過查看源代碼來學習如何自定義一個輪播控件。

項目結構截圖:

image.png

六、后記

AdPlayBanner作為作者的第一個開源控件,作者也是非常用心認真地完成,這個過程也學習到很多東西,可能其中會遇到很多錯誤,所以希望大家可以多多包涵,然后把錯誤提到Issues里面,作者會在看到的第一時間進行修正。在后面的時間里,作者也會將更多的特性加到這個控件里面,所以希望大家可以加個star,以作為對作者的小小鼓勵。 當然,如果你想第一時間聯系到作者,不妨嘗試以下聯系方式:

  • Email:liji.anchang@163.com

  • CSDN:http://blog.csdn.net/ljcitworld

  • Github:https://github.com/ryanlijianchang

?

代碼下載:http://www.demodashi.com/demo/11312.html

注:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權

?

轉載于:https://www.cnblogs.com/demodashi/p/8491104.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539300.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pycharm運行模型時怎么設置權重?_使用AMP和Tensor Cores得到更快速,更節省內存的PyTorch模型...

點擊上方“AI派”&#xff0c;關注公眾號&#xff0c;選擇加“星標“或“置頂”導讀只需要添加幾行代碼&#xff0c;就可以得到更快速&#xff0c;更省顯存的PyTorch模型。你知道嗎&#xff0c;在1986年Geoffrey Hinton就在Nature論文中給出了反向傳播算法&#xff1f;此外&…

引入靜態變量_Common Lisp變量的一些事情

Lisp-1 vs Lisp-2[1]Scheme的求值模型非常簡單&#xff1a;只是用一個名字空間&#xff0c;所有表達式中相應位置的值應該是明確的。Common Lisp和Scheme最大的不同是&#xff0c;函數名字空間和數據的名字空間是分離的。操作函數名字空間的語句包括&#xff0c;defun&#xff…

JobTracker和TaskTracker

轉載&#xff1a;http://blog.csdn.net/keda8997110/article/details/8348705 ----------------------------------------------------------------------------------------- JobTracker和TaskTracker JobTracker 對應于 NameNode TaskTracker 對應于 DataNode DataNode 和Na…

c理c利用計算機怎么彈,通過匯編一個簡單的C程序,分析匯編代碼理解計算機是如何工作的...

通過匯編一個簡單的C程序&#xff0c;分析匯編代碼理解計算機是如何工作的計算機的工作方式&#xff1a;現代計算機的基本體系結構都是采用馮諾依曼結構&#xff0c;馮諾依曼的設計思想最重要之處是"存儲程序"的這個概念。計算機的工作過程&#xff0c;就是執行程序的…

Linux安裝MySQL的兩種方法

原文鏈接&#xff1a;http://blog.csdn.net/superchanon/article/details/8546254 --------------------------------------------------------------------------------------- 1. 運行平臺&#xff1a;CentOS 6.3 x86_64&#xff0c;基本等同于RHEL 6.3 2. 安裝…

jenkins 手動執行_想知道如何用Jenkins自動執行Python腳本輸出測試報告?

前言在用python做自動化測試時&#xff0c;我們寫好代碼&#xff0c;然后需要執行才能得到測試報告&#xff0c;這時我們可以通過 Jenkins 來進一步完成自動化工作。借助Jenkins&#xff0c;我們可以結合 Git/SVN 自動拉取代碼&#xff0c;可以設置定時構建&#xff0c;接著就可…

VR 影院,約嗎?

世界第一家 VR 影院已經開張&#xff0c;朋友&#xff0c;去不&#xff1f; 世界第一家 VR 影院正式開張 &#xff08;無大屏的 VR 電影院&#xff09; 在被稱為 VR 元年的 2016 年&#xff0c;越來越多的人加入了這個新興的領域&#xff0c;各種傳統應用也在被 VR 包裝之后以…

redis cluster 分布式鎖_關于分布式鎖原理的一些學習與思考redis分布式鎖,zookeeper分布式鎖...

首先分布式鎖和我們平常講到的鎖原理基本一樣&#xff0c;目的就是確保&#xff0c;在多個線程并發時&#xff0c;只有一個線程在同一刻操作這個業務或者說方法、變量。在一個進程中&#xff0c;也就是一個jvm 或者說應用中&#xff0c;我們很容易去處理控制&#xff0c;在jdk …

會計行業被計算機取代馬云,會計人:為什么我神煩“人工智能取代說”?

原標題&#xff1a;會計人&#xff1a;為什么我神煩“人工智能取代說”&#xff1f;原創來源&#xff1a;學會計有方法從財會機器人誕生到馬云的無人商店&#xff0c;全行業掀起了一股“人工智能取代說”的熱潮。有些財會朋友在一輪又一輪的信息轟炸下&#xff0c;倍感壓力&…

mysql5.6允許遠程服務器訪問數據庫

創建一個mysql用戶,并設置可以遠程訪問 grant usage on *.* to fredlocalhost identified by fred;//創建用戶fred密碼ferdselect host,user,password from mysql.user where userfred;//查看記錄 grant all privileges on *.* to fred%identified by fred;//設置可以遠程訪問…

sp烘焙流程_小手雷-PBR材質流程(一)——(基本材質)

小手雷-PBR材質流程(一)Substance Painter生存手冊經過了12個章節的講解后&#xff0c;已經完結了(&#xff61;&#xff65;ω&#xff65;&#xff61;)相信大家經過了生存手冊這一基礎教程過后&#xff0c;對Substance Painter這款軟件已經有了比較堅實的基礎了&#xff0c;…

MyBatis-進階2

typeHandler typeHandler有什么用&#xff1f; 你可以重寫類型處理器或創建你自己的類型處理器來處理不支持的或非標準的類型。 具體做法為&#xff1a;實現 org.apache.ibatis.type.TypeHandler 接口&#xff0c; 或繼承一個很便利的類 org.apache.ibatis.type.BaseTypeHandle…

python中 r是什么意思_python中rb含義理解

Python文件讀寫的幾種模式&#xff1a; r,rb,w,wb 那么在讀寫文件時&#xff0c;有無b標識的的主要區別在哪里呢&#xff1f; 文件使用方式標識 r:默認值&#xff0c;表示從文件讀取數據 w:表示要向文件寫入數據&#xff0c;并截斷以前的內容 a:表示要向文件寫入數據&#xff0…

哈佛大學計算機生物科學,生命科學專業

【出國留學網】昨日&#xff0c;泰晤士報公布了最新版2018年世界大學生命科學排名&#xff0c;哈佛大學位列第一。本文是關于世界各國大學在本次生命科學排名中的具體表現&#xff0c;供你選校參考。The 2018 Times Higher Education World University Rankings’ table for li…

怎樣呵護友誼_呵護真正的友情,助力漫長的人生

友情&#xff0c;即友誼&#xff0c;是指朋友和朋友之間的感情。它是一種很美妙的東西&#xff0c;可以讓你在失落的時候變得高興起來&#xff0c;可以讓你走出苦海&#xff0c;去迎接新的人生。它就像一種你無法說出又可以感到快樂無比的東西。只有擁有真正朋友的人&#xff0…

【Day41】Python之路——AJAX

什么是AJAX AJAX Asynchronous JavaScript and XML&#xff08;異步的 JavaScript 和 XML&#xff09;。 優點: 不重新加載整個頁面的情況下&#xff0c;可以與服務器交換數據并更新部分網頁內容 不需要任何瀏覽器插件&#xff0c;但需要用戶允許JavaScript在瀏覽器上執行 同源…

LINUX重啟MYSQL的命令

原文&#xff1a;http://blog.csdn.net/liuyong0818/article/details/5693336 ------------------------原文有錯誤&#xff0c;本文轉載時已修改--------- 如何啟動/停止/重啟MySQL 一、啟動方式 1、使用 service 啟動&#xff1a;service mysql start 2、使用 mysql 腳…

html css子標簽,HTML+CSS系列:CSS選擇器(標簽、ID、類、通配符、后代、子元素、并集、偽類)...

一.標簽選擇器Documenth1 {color: red;}h2{color: green;}Hello World!Hello World!Hello !Hello !二.類選擇器Document.box {color: green;}.box1 {font-size: 26px;}Hello World!Hello World!三.ID選擇器Document#box{color: green;}Hello World!四.通配符選擇器Document*{ma…

aes離線解密工具_如何在Python中解密OpenSSL AES加密文件?

OpenSSL為AES加密提供了一種流行的(但不安全 - 見下文&#xff01;)命令行界面&#xff1a;openssl aes-256-cbc -salt -in filename -out filename.encPython以PyCrypto包的形式支持AES&#xff0c;但它只提供工具。如何使用Python / PyCrypto解密使用OpenSSL加密的文件&#…

什么是Hive

Hive 是建立在 Hadoop 上的數據倉庫基礎構架。 它提供了一系列的工具&#xff0c;可以用來進行數據提取轉化加載&#xff08;ETL &#xff09;&#xff0c;這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。 Hive 定義了簡單的類 SQL 查詢語言&#xff0c…