直播原始碼網站,實現文字自動翻轉效果
直播原始碼網站,實現文字自動翻轉效果的相關程式碼
AutoTextView
package com.jky.mobilebzt.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Camera; import android.graphics.Matrix; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.TextSwitcher; import android.widget.TextView; import android.widget.ViewSwitcher; import com.jky.mobilebzt.R; public class AutoTextView extends TextSwitcher implements ViewSwitcher.ViewFactory { private float mHeight; private Context mContext; //mInUp,mOutUp分別構成向下翻頁的進出動畫 private Rotate3dAnimation mInUp; private Rotate3dAnimation mOutUp; //mInDown,mOutDown分別構成向下翻頁的進出動畫 private Rotate3dAnimation mInDown; private Rotate3dAnimation mOutDown; public AutoTextView(Context context) { this(context, null); } public AutoTextView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.auto3d); mHeight = a.getDimension(R.styleable.auto3d_textSize, 36); a.recycle(); mContext = context; init(); } private void init() { setFactory(this); mInUp = createAnim(-90, 0, true, true); mOutUp = createAnim(0, 90, false, true); mInDown = createAnim(90, 0, true, false); mOutDown = createAnim(0, -90, false, false); //TextSwitcher主要用於檔案切換,比如 從文字A 切換到 文字 B, //setInAnimation()後,A將執行inAnimation, //setOutAnimation()後,B將執行OutAnimation //初始化翻轉 // setInAnimation(mInUp); // setOutAnimation(mOutUp); } private Rotate3dAnimation createAnim(float start, float end, boolean turnIn, boolean turnUp) { final Rotate3dAnimation rotation = new Rotate3dAnimation(start, end, turnIn, turnUp); rotation.setDuration(800); rotation.setFillAfter(false); rotation.setInterpolator(new AccelerateInterpolator()); return rotation; } //這裡返回的TextView,就是我們看到的View @Override public View makeView() { TextView t = new TextView(mContext); // t.setGravity(Gravity.CENTER); t.setTextSize(mHeight); // t.setTextColor(Resources.getSystem().getColor(android.R.color.black)); t.setTextColor(mContext.getResources().getColor(R.color.white)); t.setTextSize(13); // t.setGravity(Gravity.CENTER_VERTICAL); t.setPadding(0,15,0,15); t.setMaxLines(1); t.setEllipsize(TextUtils.TruncateAt.END); return t; } //定義動作,向下滾動翻頁 public void previous() { if (getInAnimation() != mInDown) { setInAnimation(mInDown); } if (getOutAnimation() != mOutDown) { setOutAnimation(mOutDown); } } //定義動作,向上滾動翻頁 public void next() { if (getInAnimation() != mInUp) { setInAnimation(mInUp); } if (getOutAnimation() != mOutUp) { setOutAnimation(mOutUp); } } class Rotate3dAnimation extends Animation { private final float mFromDegrees; private final float mToDegrees; private float mCenterX; private float mCenterY; private final boolean mTurnIn; private final boolean mTurnUp; private Camera mCamera; public Rotate3dAnimation(float fromDegrees, float toDegrees, boolean turnIn, boolean turnUp) { mFromDegrees = fromDegrees; mToDegrees = toDegrees; mTurnIn = turnIn; mTurnUp = turnUp; } @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); mCamera = new Camera(); mCenterY = getHeight() / 2; mCenterX = getWidth() / 2; } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { final float fromDegrees = mFromDegrees; float degrees = fromDegrees + ((mToDegrees - fromDegrees) * interpolatedTime); final float centerX = mCenterX; final float centerY = mCenterY; final Camera camera = mCamera; final int derection = mTurnUp ? 1 : -1; final Matrix matrix = t.getMatrix(); camera.save(); if (mTurnIn) { camera.translate(0.0f, derection * mCenterY * (interpolatedTime - 1.0f), 0.0f); } else { camera.translate(0.0f, derection * mCenterY * (interpolatedTime), 0.0f); } camera.rotateX(degrees); camera.getMatrix(matrix); camera.restore(); matrix.preTranslate(-centerX, -centerY); matrix.postTranslate(centerX, centerY); } } }
attrs.xml
<declare-styleable name="auto3d"> <attr name="textSize" format="dimension" /> </declare-styleable>
xml
<com.xx.xx.view.AutoTextView android:id="@+id/atv_auto_qy" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_5" />
activity
private void showQyInfo() { // qyPowers.clear(); isShowQyView = true; mQyInfoView.setVisibility(View.VISIBLE); if(timer == null){ String[] qyinfo = context.getResources().getStringArray(R.array.qy_power); qyPowers = Arrays.asList(qyinfo); timer = new Timer(); timer.schedule(timerTask, 100, 3000); powerPosition = 0; } } //計時 TimerTask timerTask = new TimerTask() { @Override public void run() { if(isShowQyView) { Message message = new Message(); message.what = 0x001; handler.sendMessage(message); } } }; final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0x001: atvQy.next(); atvQy.setText(qyPowers.get(powerPosition)); powerPosition ++; powerPosition = powerPosition % 3; } } };
strings.xml
<array name="qy_power"> <item>8000+本建築行業標準線上檢視</item> <item>隨時建立反饋,企業專家、雲服務專家組、標準規範起草人為您解答</item> <item>移動課堂專享課程免費學習</item> </array>
以上就是直播原始碼網站,實現文字自動翻轉效果的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2848302/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 成品直播原始碼推薦,實現文字載入效果 文字跳動原始碼
- 直播網站原始碼,css實現狀態平滑的動畫網站原始碼CSS動畫
- html 文字翻轉映象效果HTML
- 直播軟體搭建,Android實現文字滾動播放效果Android
- 快速實現語音轉文字,還自帶翻譯
- 手機直播原始碼,實現圖片瀑布流式滑動效果原始碼
- 直播原始碼網站,實現對話方塊的左滑動刪除原始碼網站
- 直播網站原始碼,安卓防止輸入框自動彈出網站原始碼安卓
- 直播原始碼網站,直播間小遊戲java遞迴的實現方式原始碼網站遊戲Java遞迴
- 影片直播app原始碼,vue實現列表自動滾動的方式APP原始碼Vue
- 前端實現文字滾動效果前端
- 為了直播流暢,實現直播商城原始碼的轉碼原始碼
- 直播小程式原始碼,Android 傾斜文字 效果設定原始碼Android
- app直播原始碼,為文字/圖片新增按壓效果APP原始碼
- 直播app系統原始碼,圖片Loading旋轉動畫效果APP原始碼動畫
- 直播網站程式原始碼,採用Redis實現購物車功能網站原始碼Redis
- 直播系統原始碼,自動登入及記住密碼實現原始碼密碼
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼
- 滑鼠懸浮圖片實現翻轉效果
- app直播原始碼,列表越界後自動彈回原樣的效果APP原始碼
- 直播平臺原始碼,FlinkSQL實現行轉列原始碼SQL
- 線上直播系統原始碼,實現翻頁載入、下拉滾動載入原始碼
- 線上直播系統原始碼,使用ValueAnimator實現view放大縮小動畫效果原始碼View動畫
- 直播軟體原始碼,實現頁面滾動到可視區顯示動畫效果原始碼動畫
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- app直播原始碼,flutter Text自動計算文字內容的寬度APP原始碼Flutter
- ul>li*3 實現翻書動畫效果動畫
- 成品直播原始碼,點選滑動切換效果原始碼
- 直播網站原始碼,centos7修改密碼網站原始碼CentOS密碼
- 直播原始碼網站,各式各樣的淡入淡出動畫原始碼網站動畫
- 影片直播網站原始碼,flutter 頂部滾動欄頁面網站原始碼Flutter
- 線上直播系統原始碼,vue實現搜尋文字高亮功能原始碼Vue
- 影片直播原始碼,前端canvas動態驗證碼實現原始碼前端Canvas
- Flutter實戰動畫番外篇-翻頁效果實現Flutter動畫
- 線上直播原始碼,JS動態效果之,側邊欄滾動固定效果原始碼JS
- 直播網站程式原始碼,FlowLayoutManager 流式佈局網站原始碼
- 小說網站原始碼:自適手機版小說站原始碼整合全自動採集規則網站原始碼