自定義VideoView實現視訊畫面的縮放
public class VideoView extends android.widget.VideoView { /**
-
Android系統在更加xml佈局找這個類,並且例項化的時候,用該構造方法例項化
-
@param context
-
@param attrs/ public VideoView(Context context, AttributeSet attrs) { super(context, attrs); }
public VideoView(Context context) { super(context);
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {// super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); }
/**
-
設定視訊畫面的寬和高
-
@param videoWidth
-
@param videoHeight/ public void setVideoSize(int videoWidth, int videoHeight) {
}
2_在播放器中得到螢幕高和寬方法
//方式一
wm = (WindowManager) getSystemService(WINDOW_SERVICE);screenWidth = wm.getDefaultDisplay().getWidth();
//方式二
DisplayMetrics displayMetrics = new DisplayMetrics();this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);screenWidth = displayMetrics.widthPixels;screenHeight = displayMetrics.heightPixels;
3_視訊預設和全屏
一播放起來,在準備好了中設定視訊播放預設
/**
-
true全屏
-
flase預設*/ private boolean isFullScreen = false; /**
-
視訊全屏和預設
-
@param type*/ public void setVideoType(int type){ switch (type) { case SCREEN_FULL: videoview.setVideoSize(screenWidth, screenHeight); isFullScreen = true; btn_switch_screen.setBackgroundResource(R.drawable.btn_screen_dafult_selector); break;
case SCREEN_DEFULT: //視訊的寬 int mVideoWidth = videoWidth; //視訊的高 int mVideoHeight = videoHeight; //螢幕的寬 int width = screenWidth; //螢幕的寬 int height = screenHeight; if (mVideoWidth > 0 && mVideoHeight > 0) { if ( mVideoWidth * height > width * mVideoHeight ) { //Log.i("@@@", "image too tall, correcting"); height = width * mVideoHeight / mVideoWidth; } else if ( mVideoWidth * height < width * mVideoHeight ) { //Log.i("@@@", "image too wide, correcting"); width = height * mVideoWidth / mVideoHeight; } else { //Log.i("@@@", "aspect ratio is correct: " + //width+"/"+height+"="+ //mVideoWidth+"/"+mVideoHeight); } }
videoview.setVideoSize(width, height); btn_switch_screen.setBackgroundResource(R.drawable.btn_screen_full_selector); isFullScreen = false;
break; }
}
4_點選按鈕的時候實現切換播放模式 case R.id.btn_switch_screen: if(isFullScreen){ setVideoType(SCREEN_DEFUALT); }else{ setVideoType(SCREEN_FULL); } break
5 手勢識別器實現雙擊縮放螢幕
detector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { /** * 長按 * @param e */ @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); } /** * 雙擊 * @param e * @return */ @Override public boolean onDoubleTap(MotionEvent e) { // Toast.makeText(SystemVideoPlayer.this, "我被雙擊了", Toast // .LENGTH_SHORT).show(); if (isFullScreen) { //設定為預設 setVideoType(DEFAULT_SCREEN); } else { //設定為全屏 setVideoType(FULL_SCREEN); } return super.onDoubleTap(e); } /** * 單擊 * @param e * @return */ @Override public boolean onSingleTapConfirmed(MotionEvent e) { // Toast.makeText(SystemVideoPlayer.this, "我被單擊了", Toast // .LENGTH_SHORT).show(); return super.onSingleTapConfirmed(e); } });
相關推薦
自定義VideoView實現視訊畫面的縮放
1_自定義VideoView,增加設定視訊大小方法 public class VideoView extends android.widget.VideoView { /** Android系統在更加xml佈局找這個類,並且例項化的時候,用該構造方法例項化 @pa
Android進階——巧借自定義VideoView實現Activity的動態視訊背景
引言 話說這個Activity 動態背景我第一次是在一個菠菜App上看到的,當時感覺逼格很高,最近正好用到專案中,而且好像好久沒有寫關於UI這些“有趣”的文章啦,這篇文章就簡單小結下,其實實現動態背景這並不是唯一的方案,還有其他的方式。 一、VideoView
自定義控制元件:手勢縮放移動,遮罩
import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import and
FFMpeg實現視訊的縮放
#ifndef _IO_FILE_H_ #define _IO_FILE_H_ typedef struct _IOFile { char *inputName; /*輸入檔名*/ char *outputName; /*輸出檔名*/ char *inputFrameSize;
Android仿微信朋友圈九宮格圖片展示自定義控制元件,支援縮放動畫~
一直對微信朋友圈九宮格圖片顯示控制元件比較好奇,找到一篇介紹相關騷操作的部落格 部落格雖好但是不夠完美,缺少點選圖片預覽頁面和縮放動畫,作為一個不斷追求完美主義的人,我想把這個控制元件結合到專案中而不是單純作為一個控制元件。 下面是我的實現效果圖: (
超簡單 自定義VideoView 讓視訊拉伸至全屏
話不多說,直接上程式碼。 import android.annotation.TargetApi; import android.content.Context; import android.u
自定義ImageView: 實現自由縮放 ,自由移動縮放後的圖片 .雙擊放大與縮小圖片 相容ViewPager
直接擼程式碼, 複製就能用 package com.zhf.baselibrary.view; import android.annotation.SuppressLint; import android.content.Context; import android.graphi
Android利用自定義VideoView輕鬆實現用視訊做背景
前言:有人問我,即便夢想成真了又能怎樣,或許不能怎樣,但這是夢想。 介紹:最近開發需要弄一個像QQ一樣的登陸介面(介面要用視訊做背景),上網發現這個博主介紹的比較好,便轉載來分享給更多的人。 先看看效果 注意事項(程式碼裡也標註出來了)
Android自定義View實現圖片顯示,並實現縮放、拖拽、切換功能
這裡貼三個檔案的原始碼,第一個是main.java package com.example.test; import java.util.ArrayList; import java.util.List; import com.example.test.MyXZ; i
鼠標滾輪實現圖片的縮放-------Day79
auto 生活 lis asc alt easy opera play log 今天是7月的最後一天了,不得不說,我定下的七月份剩余幾天的計劃是完不成了。一則工作確實緊了些,再則沒能處理好生活、工作和學習的節奏。這才是人生最大的課題吧。只是也還好。至少自己還在堅持著。事
Android -- 自定義view實現keep歡迎頁倒計時效果
super onfinish -m use new getc awt ttr alt 1,最近打開keep的app的時候,發現它的歡迎頁面的倒計時效果還不錯,所以打算自己來寫寫,然後就有了這篇文章。 2,還是老規矩,先看一下我們今天實現的效果 相較於我們常見的倒計時
UWP:使用Behavior實現FlipView簡單縮放效果
spl send 應該 code load isp start 個性 source 先上效果圖 首先安裝Behavior SDK:在Nuget中搜索安裝 Microsoft.Xaml.Behaviors.Uwp.Managed 。 然後新建類,AnimationFlipV
Android自定義View——實現水波紋效果類似剩余流量球
string 三個點 pre ber block span 初始化 move 理解 最近突然手癢就想搞個貝塞爾曲線做個水波紋效果玩玩,終於功夫不負有心人最後實現了想要的效果,一起來看下吧: 效果圖鎮樓 一:先一步一步來分解一下實現的過程 需要繪制一個正弦曲線(sin
Android自定義processor實現bindView功能
lis dds 定義 java代碼 cli 註冊 文章 type() mage 一、簡介 在現階段的Android開發中,註解越來越流行起來,比如ButterKnife,Retrofit,Dragger,EventBus等等都選擇使用註解來配置。按照處理時期,註解又分為兩
自定義toast實現
web javascript html5 toast ys_toast.css.ys-toast{ position:fixed; left:0; right:0; top:0; bottom:0; z-index: 999999; } .ys-toast>em{ pos
SpringVC 攔截器+自定義註解 實現權限攔截
json.js 加載 bean media tar attr esp 權限 encoding 1.springmvc配置文件中配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w
自定義ScrollView 實現上拉下拉的回彈效果--並且子控件中有Viewpager的情況
是否 AS abs pri tar utils lda animation ted onInterceptTouchEvent就是對子控件中Viewpager的處理:左右滑動應該讓viewpager消費 1 public class MyScrollView ext
[python]RobotFramework自定義庫實現UI自動化
bubuko output source 自動 封裝 9.png 全局變量 詳細 變量 1.安裝教程 環境搭建不多說,網上資料一大堆,可參考https://www.cnblogs.com/puresoul/p/3854963.html,寫的比較詳細,值得推薦。目前pyt
NPOI+反射+自定義特性實現上傳excel轉List及驗證
type set custom pre script private property xssf don 1.自定義特性 [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited
【Thumbnailator】java 使用Thumbnailator實現等比例縮放圖片,旋轉圖片等【轉載】
strong class chm eight load angle true api ins Thumbnailator概述: Thumbnailator是與Java界面流暢的縮略圖生成庫。它簡化了通過提供一個API允許精細的縮略圖生成調整生產從現有的圖