Android中第三方控制元件PhotoView的基本使用
這是一個圖片檢視庫,實現圖片瀏覽功能,支援pinch(捏合)手勢或者點選放大縮小。支援在ViewPager中翻頁瀏覽圖片。
PhotoView 是一款擴充套件自Android ImageView ,支援通過單點/多點觸控來進行圖片縮放的智慧控制元件。功能實用和強大。
PhotoView的功能:
圖片瀏覽檢視
雙指縮放
單點觸控縮放
圖片縮放模式設定
基本用法:
匯入jar包,佈局XML裡設定PhotoView
將ImageView傳入PhotoViewAttacher
程式碼演示:
使用 PhotoView進行網路圖片和本地圖片的載入,縮放和點選事件處理
佈局檔案中:
- <spanstyle="background-color: rgb(255, 255, 255);"><LinearLayoutxmlns: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"
- tools:context=".MainActivity"
-
android:orientation
- >
- <uk.co.senab.photoview.PhotoView
- android:id="@+id/iv_photo1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- <uk.co.senab.photoview.PhotoView
- android:id="@+id/iv_photo2"
-
android:layout_width
- android:layout_height="wrap_content"
- />
- </LinearLayout></span>
MainActivity中:
- publicclass MainActivity extends Activity {
- private PhotoView iv_photo1;
- private PhotoView iv_photo2;
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- iv_photo1 = (PhotoView) findViewById(R.id.iv_photo1);
- iv_photo2 = (PhotoView) findViewById(R.id.iv_photo2);
- // localImage();
- netImage();
- }
- /**
- * 載入本地圖片
- *
- */
- privatevoid localImage() {
- // 載入本地圖片,縮放處理
- try {
- // 圖片在asset目錄中
- InputStream is = getAssets().open("photo2.jpg");
- Bitmap bm = BitmapFactory.decodeStream(is);
- iv_photo1.setImageBitmap(bm);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 載入網路圖片
- */
- privatevoid netImage() {
- ImageLoader loader = ImageLoader.getInstance();
- loader.displayImage("https://www.baidu.com/img/bdlogo.png", iv_photo2);
- iv_photo2.setOnPhotoTapListener(new OnPhotoTapListener() {
- @Override
- publicvoid onPhotoTap(View arg0, float arg1, float arg2) {
- Toast.makeText(MainActivity.this, "圖片被點選了", 10).show();
- }
- });
- }
- }
- /**
- * 載入網路圖片時,需要對ImageLoader進行全域性配置
- *
- */
- publicclass BaseApplication extends Application {
- @Override
- publicvoid onCreate() {
- super.onCreate();
- initImagloader(getApplicationContext());
- }
- privatevoid initImagloader(Context context) {
- File cacheDir = StorageUtils.getOwnCacheDirectory(context,
- "photoview/Cache");// 獲取到快取的目錄地址
- // 建立配置ImageLoader(所有的選項都是可選的,只使用那些你真的想定製),這個可以設定在APPLACATION裡面,設定為全域性的配置引數
- ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
- context)
- // 執行緒池內載入的數量
- .threadPoolSize(3).threadPriority(Thread.NORM_PRIORITY - 2)
- .memoryCache(new WeakMemoryCache())
- .denyCacheImageMultipleSizesInMemory()
- .discCacheFileNameGenerator(new Md5FileNameGenerator())
- // 將儲存的時候的URI名稱用MD5 加密
- .tasksProcessingOrder(QueueProcessingType.LIFO)
- .discCache(new UnlimitedDiscCache(cacheDir))// 自定義快取路徑
- // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
- .writeDebugLogs() // Remove for release app
- .build();
- // Initialize ImageLoader with configuration.
- ImageLoader.getInstance().init(config);// 全域性初始化此配置
- }
- }
- <uses-permission android:name="android.permission.INTERNET"/>
- <application
- android:name="com.zhhandroid.BaseApplication"
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name=".MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
效果:
需要匯入的jar包:
photoview-library-1.2.2.jar
universal-image-loader-1.9.2_sources.jar
效果展示:
jar包及原始碼下載:
相關推薦
Android中第三方控制元件PhotoView的基本使用
PhotoView的簡介:這是一個圖片檢視庫,實現圖片瀏覽功能,支援pinch(捏合)手勢或者點選放大縮小。支援在ViewPager中翻頁瀏覽圖片。 PhotoView 是一款擴充套件自Android ImageView ,支援通過單點/多點觸控來進行圖片縮放的智慧控制
Android中獲取控制元件尺寸的時機
在Android開發的時候,我們通常要獲取控制元件的大小。在activity中獲取控制元件的大小,onCreate()方法獲取到的值往往是0,是因為在系統執行該方法的時候,控制元件還沒有繪製完成。而在activity獲取或失去焦點的時候會呼叫一個onWindowFocusCh
IOS中UILabel控制元件的基本使用
//UILable的大小自適應例項 UILabel *myLable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 2, 2)];//設定位置與大小 [myLable setFont:[UIFont
Android中設定控制元件可見與不可見
第一種 gone 表示不可見並且不佔用空間 第二種 visible 表示可見 第三種 invisible 表示不可見但是佔用空間 可見與不可見的表現形式有兩種。 在佈局檔案中: [html]view plaincopyprint? andr
Android中EditText控制元件的幾種使用方法
2. MultiAutoCompleteTextView是AutoCompleteTextView的子類,它是對AutoCompleteTextView的擴充套件,但是你必須提供一個 MultiAutoCompleteTextView.Tokenizer來區分不同的字串,通過使用這個方法:set
android中ListView控制元件最簡單的用法
建立一個活動,在xml檔案中新增一個ListView控制元件,id定義為list1,並且設定為滿屏顯示,程式碼如下: <ListView android:id="@+id/list1" android:layout_width="wrap_conten
android中RecyclerView控制元件的使用
1、RecyclerView控制元件不在標準的庫裡面,需要先引入,引入比較簡單,點選控制元件右邊的下載按鈕即可 2、先新增一個新聞實體類,用來為新聞列表提供資料,news.java: package com.example.chenrui.common; public cl
android中RecyclerView控制元件的列表項橫向排列
本文是在上一篇文章的基礎上做的修改:android中RecyclerView控制元件的使用 1、修改列表項news_item.xml: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Const
Android中TextView控制元件的singleLine廢棄解決
在Android中想實現TextView的單行顯示,很簡單的一個方法是TextView中的singleLine設定為True即可,當文字內容超過單行的時候,就會在該行行尾部新增三個省略號代替。 顯示
Android中DatePicker控制元件用法解析
關於DatePicker這個控制元件的解析有以下幾點: 1、首先是顯示問題,在Android 3.0系統以後使用DatePicker控制元件會出現一堆和日期相關的介面,比如下圖: 有沒有發現,如果使用
Android中獲取控制元件的位置
getLocationOnScree:計算該檢視在全域性座標系中的x,y值,(注意這個值是要從螢幕頂端算起,也就是索包括了通知欄的高度)//獲取在當前螢幕內的絕對座標 getLocationInWindow :計算該檢視在它所在的widnow的座標x,y值,//獲取在整個視
Android中日曆控制元件的使用
一.概述 因為專案中要用到選擇日期的功能,所以特此來研究一下相關方面的知識,總結一下,也為了以後使用起來更加方便。 二.介紹 Android中自帶了兩個控制元件,DatePicker和TimePicker,分別用來選擇日期和時間的,我們看看如何使用。
React-Native開發中常用的第三方控制元件持續更新
筆者簡書:https://www.jianshu.com/u/8ba7c349861d, 歡迎大家關注 2018.8.23更新: 動態修改Android的softmodule: react-native-android-keyboard-adjust
android學習筆記:在actionBar中增加控制元件
1.在AndroidManifest.xml中新增配置activity屬性 <activity android:name=".killProcess" android:label="殺殺殺" android:theme="@styl
Android在程式碼中修改控制元件的位置
//這裡我用FrameLayout佈局為列,其他佈局設定方法一樣,只需改變佈局名就行 FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) photoView.getLayoutParams(); //
android studio向activity_main.xml中拖控制元件不成功
android studio向activity_main.xml中拖控制元件不成功 android studio 自動生成activity_main.xml和content_activity.xml.此時向activity_main.xml中拖動控制元件顯示無法拖動。 解決方法:
Android 關於佈局中Button控制元件正常順序出現的遮蓋其他控制元件問題
在一個相對佈局中設定著底部組合控制元件,比如:正常app的四個底部導航欄,分別用權重去等比例顯示,但是若在其中的一份比例中的相對佈局裡放置了Button和其他的自定義控制元件(包含非自定義控制元件),那麼就會出現Button覆蓋佈局中的其他控制元件的問題,不過遇到的也許不多吧
Android開發:如何在選單中呼叫控制元件(如Button、TextView……)
當我們在類內定義控制元件的全域性變數時,如Button……,只能在onCreate()中初始化,這樣的控制元件變數引用在選單中不好引用,會報錯。 如果想在選單中呼叫控制元件,可以在選單中重新定義控制元件
Android中在程式碼中設定控制元件的寬和高
//在程式碼中設定控制元件大小的方法 private Button mbtn; mbtn = (Button) findViewById(R.id.btn_test); LayoutParams lp; lp=mbtn.getLayoutParams
android在程式碼中設定控制元件的長和高
這裡介紹LinearLayout和RelativeLayout兩種佈局下的控制元件 LinearLayout.LayoutParams paramss = (LinearLayout.LayoutParams) imageview.getLayoutPar