Android實現(xiàn)圖片瀏覽并改變透明度
本文實例為大家分享了簡單的圖片瀏覽器制作,供大家參考,具體內(nèi)容如下
例子中的圖片瀏覽器既可以改變圖片的透明度,也可以根據(jù)用戶在圖片上選定的某一區(qū)域,對其進行顯示,用于查看圖片的局部細節(jié)。
在activity_main.xml中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="增大透明度" android:layout_marginLeft="60dp"/> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="降低透明度" /> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="60dp" android:text="下一張" /> </LinearLayout> <ImageView android:id="@+id/image1" android:layout_width="400dp" android:layout_height="280dp" android:layout_gravity="center" android:src="@drawable/zm1" android:scaleType="fitCenter"/> <ImageView android:id="@+id/image2" android:layout_width="120dp" android:layout_height="120dp" android:background="#f0f" android:layout_margin="10dp"/> </LinearLayout>
在MainActivity.java中:
package com.example.test02; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { // 定義訪問圖片的數(shù)組 private int[] images=new int[]{R.drawable.zm1,R.drawable.zm2,R.drawable.zm6, R.drawable.zm4,R.drawable.zm5}; // 定義默認顯示的圖片 private int current=2; // 定義圖片的初始透明度 private int alpha=255; private Button btn1,btn2,btn3; private ImageView image1,image2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=findViewById(R.id.btn1); btn2=findViewById(R.id.btn2); btn3=findViewById(R.id.btn3); image1=findViewById(R.id.image1); image2=findViewById(R.id.image2); //定義查看下一張圖片的監(jiān)聽器 btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { image1.setImageResource(images[++current%images.length]); } }); // 為按鈕添加監(jiān)聽器 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //定義改變圖片透明度的方法 if (v==btn1){ alpha+=20; } if (alpha>=255){ alpha=255; } if (alpha<=0){ alpha=0; } //改變圖片的透明度 image1.setImageAlpha(alpha); } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (v==btn2){ alpha-=20; } if (alpha>=255){ alpha=255; } if (alpha<=0){ alpha=0; } image1.setImageAlpha(alpha); } }); image1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { BitmapDrawable bitmapDrawable= (BitmapDrawable) image1.getDrawable(); // 獲取第一個圖片顯示框中的位圖 Bitmap bitmap=bitmapDrawable.getBitmap(); // 實際大小與第一張圖片的縮放比例 double scale=1.0*bitmap.getHeight()/image1.getHeight(); // 獲取需要顯示圖片的開始點 long x=Math.round(event.getX()*scale); long y=Math.round(event.getY()*scale); if (x+120>bitmap.getWidth()){ x=bitmap.getWidth()-120; } if (y+120>bitmap.getHeight()){ y=bitmap.getHeight()-120; } // 顯示圖片指定區(qū)域 image2.setImageBitmap(Bitmap.createBitmap(bitmap,(int)x,(int)y,120,120)); image2.setImageAlpha(alpha); return false; } }); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android仿微信發(fā)朋友圈瀏覽圖片效果
- Android實現(xiàn)圖片瀏覽器示例
- Android仿淘寶商品瀏覽界面圖片滾動效果
- Android 開發(fā) 使用WebUploader解決安卓微信瀏覽器上傳圖片中遇到的bug
- Android實現(xiàn)網(wǎng)絡(luò)加載圖片點擊大圖后瀏覽可縮放
- Android仿微信圖片點擊瀏覽的效果
- Android編程實現(xiàn)的超炫圖片瀏覽器
- Android實現(xiàn)點擊WebView界面中圖片滑動瀏覽與保存圖片功能
- Android使用gallery和imageSwitch制作可左右循環(huán)滑動的圖片瀏覽器
- Android編程實現(xiàn)圖片的瀏覽、縮放、拖動和自動居中效果
相關(guān)文章
Android RecyclerView實現(xiàn)吸頂動態(tài)效果流程分析
RecyclerView是Android一個更強大的控件,其不僅可以實現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實現(xiàn)數(shù)據(jù)縱向滾動,也可以實現(xiàn)橫向滾動(ListView做不到橫向滾動)。接下來講解RecyclerView的用法2022-12-12Android MPAndroidChart開源圖表庫之餅狀圖的代碼
MPAndroidChart是一款基于Android的開源圖表庫,MPAndroidChart不僅可以在Android設(shè)備上繪制各種統(tǒng)計圖表,而且可以對圖表進行拖動和縮放操作,應(yīng)用起來非常靈活2018-05-05Android編程實現(xiàn)根據(jù)不同日期計算天數(shù)差的方法
這篇文章主要介紹了Android編程實現(xiàn)根據(jù)不同日期計算天數(shù)差的方法,涉及Android調(diào)用日期類Calendar實現(xiàn)時間運算的相關(guān)技巧,需要的朋友可以參考下2016-03-03Android 使用 SharedPreferences 保存少量數(shù)據(jù)的實現(xiàn)代碼
這篇文章主要介紹了Android 使用 SharedPreferences 保存少量數(shù)據(jù)的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Android開發(fā)可添加頭尾的RecycleView的實現(xiàn)
這篇文章主要為大家介紹了Android開發(fā)可添加頭尾的RecycleView的實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12Framework源碼面試之a(chǎn)ctivity啟動流程
這篇文章主要為大家介紹了Framework源碼面試之a(chǎn)ctivity啟動流程實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Android Notification.Builder通知案例分享
這篇文章主要為大家分享了Android Notification.Builder通知案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Android使用開源組件PagerBottomTabStrip實現(xiàn)底部菜單和頂部導(dǎo)航功能
這篇文章主要介紹了Android使用PagerBottomTabStrip實現(xiàn)底部菜單和頂部導(dǎo)航功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08