Android實(shí)現(xiàn)圖片瀏覽并改變透明度
本文實(shí)例為大家分享了簡(jiǎn)單的圖片瀏覽器制作,供大家參考,具體內(nèi)容如下
例子中的圖片瀏覽器既可以改變圖片的透明度,也可以根據(jù)用戶在圖片上選定的某一區(qū)域,對(duì)其進(jìn)行顯示,用于查看圖片的局部細(xì)節(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 {
// 定義訪問(wèn)圖片的數(shù)組
private int[] images=new int[]{R.drawable.zm1,R.drawable.zm2,R.drawable.zm6,
R.drawable.zm4,R.drawable.zm5};
// 定義默認(rèn)顯示的圖片
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)聽(tīng)器
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image1.setImageResource(images[++current%images.length]);
}
});
// 為按鈕添加監(jiān)聽(tīng)器
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();
// 獲取第一個(gè)圖片顯示框中的位圖
Bitmap bitmap=bitmapDrawable.getBitmap();
// 實(shí)際大小與第一張圖片的縮放比例
double scale=1.0*bitmap.getHeight()/image1.getHeight();
// 獲取需要顯示圖片的開(kāi)始點(diǎn)
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;
}
});
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android仿微信發(fā)朋友圈瀏覽圖片效果
- Android實(shí)現(xiàn)圖片瀏覽器示例
- Android仿淘寶商品瀏覽界面圖片滾動(dòng)效果
- Android 開(kāi)發(fā) 使用WebUploader解決安卓微信瀏覽器上傳圖片中遇到的bug
- Android實(shí)現(xiàn)網(wǎng)絡(luò)加載圖片點(diǎn)擊大圖后瀏覽可縮放
- Android仿微信圖片點(diǎn)擊瀏覽的效果
- Android編程實(shí)現(xiàn)的超炫圖片瀏覽器
- Android實(shí)現(xiàn)點(diǎn)擊WebView界面中圖片滑動(dòng)瀏覽與保存圖片功能
- Android使用gallery和imageSwitch制作可左右循環(huán)滑動(dòng)的圖片瀏覽器
- Android編程實(shí)現(xiàn)圖片的瀏覽、縮放、拖動(dòng)和自動(dòng)居中效果
相關(guān)文章
Android RecyclerView實(shí)現(xiàn)吸頂動(dòng)態(tài)效果流程分析
RecyclerView是Android一個(gè)更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動(dòng),也可以實(shí)現(xiàn)橫向滾動(dòng)(ListView做不到橫向滾動(dòng))。接下來(lái)講解RecyclerView的用法2022-12-12
Android MPAndroidChart開(kāi)源圖表庫(kù)之餅狀圖的代碼
MPAndroidChart是一款基于Android的開(kāi)源圖表庫(kù),MPAndroidChart不僅可以在Android設(shè)備上繪制各種統(tǒng)計(jì)圖表,而且可以對(duì)圖表進(jìn)行拖動(dòng)和縮放操作,應(yīng)用起來(lái)非常靈活2018-05-05
Android編程實(shí)現(xiàn)根據(jù)不同日期計(jì)算天數(shù)差的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)根據(jù)不同日期計(jì)算天數(shù)差的方法,涉及Android調(diào)用日期類Calendar實(shí)現(xiàn)時(shí)間運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2016-03-03
PowerManagerService之自動(dòng)滅屏流程解析
這篇文章主要為大家介紹了PowerManagerService之自動(dòng)滅屏流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android 使用 SharedPreferences 保存少量數(shù)據(jù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 使用 SharedPreferences 保存少量數(shù)據(jù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
SurfaceView實(shí)現(xiàn)紅包雨平移動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了SurfaceView實(shí)現(xiàn)紅包雨平移動(dòng)畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Android開(kāi)發(fā)可添加頭尾的RecycleView的實(shí)現(xiàn)
這篇文章主要為大家介紹了Android開(kāi)發(fā)可添加頭尾的RecycleView的實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Framework源碼面試之a(chǎn)ctivity啟動(dòng)流程
這篇文章主要為大家介紹了Framework源碼面試之a(chǎn)ctivity啟動(dòng)流程實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Android Notification.Builder通知案例分享
這篇文章主要為大家分享了Android Notification.Builder通知案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android使用開(kāi)源組件PagerBottomTabStrip實(shí)現(xiàn)底部菜單和頂部導(dǎo)航功能
這篇文章主要介紹了Android使用PagerBottomTabStrip實(shí)現(xiàn)底部菜單和頂部導(dǎo)航功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08

