当前位置: 首页 > news >正文

城乡与住房建设部网站/bt磁力链好用的引擎

城乡与住房建设部网站,bt磁力链好用的引擎,广东网站建设报价,网站建设的实施方案如果当View tree很复杂,结构很深的时候, 使用动画的时候会发现即使开了硬件加速还是有些卡,这是因为android系统自带的动画是在UI线程来处理的, 而且每次需要重绘整个View tree,虽然你可以指定重新绘制的区域&#xff…

如果当View tree很复杂,结构很深的时候, 使用动画的时候会发现即使开了硬件加速还是有些卡,这是因为android系统自带的动画是在UI线程来处理的, 而且每次需要重绘整个View tree,虽然你可以指定重新绘制的区域,不过这样比较麻烦,

SurfaceView中View的绘制不是在UI线程中,所以可以避免上面的问题。我们只要做到SurfaceView背景能够透明就行了。在需要的地方盖一层SurfaceView, 做动画时显示出来。下面是示例代码。

package com.example.myapp;

import android.content.Context;

import android.content.res.Resources;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Matrix;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.graphics.PixelFormat;

import android.graphics.Region;

import android.util.AttributeSet;

import android.view.Surface.OutOfResourcesException;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

public class ZenClockSurface extends SurfaceView implements

SurfaceHolder.Callback {

private DrawClock drawClock;

public ZenClockSurface(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

getHolder().addCallback(this);

}

public ZenClockSurface(Context context) {

super(context);

getHolder().addCallback(this);

}

public ZenClockSurface(Context context, AttributeSet attrs) {

super(context, attrs);

getHolder().addCallback(this);

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

drawClock = new DrawClock(getHolder(), getResources());

drawClock.setRunning(true);

drawClock.start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

boolean retry = true;

drawClock.setRunning(false);

while (retry) {

try {

drawClock.join();

retry = false;

} catch (InterruptedException e) {

}

}

}

class DrawClock extends Thread {

private boolean runFlag = false;

private SurfaceHolder surfaceHolder;

private Bitmap picture;

private Matrix matrix;

private Paint painter;

public DrawClock(SurfaceHolder surfaceHolder, Resources resources) {

this.surfaceHolder = surfaceHolder;

picture = BitmapFactory.decodeResource(resources,

R.drawable.ic_launcher);

matrix = new Matrix();

this.painter = new Paint();

this.painter.setStyle(Paint.Style.FILL);

this.painter.setAntiAlias(true);

this.painter.setFilterBitmap(true);

}

public void setRunning(boolean run) {

runFlag = run;

}

@Override

public void run() {

Canvas canvas;

while (runFlag) {

matrix.preRotate(1.0f, picture.getWidth() / 2,

picture.getHeight() / 2);

canvas = null;

try {

canvas = surfaceHolder.lockCanvas(null);

synchronized (surfaceHolder) {

float[] f = new float[9];

matrix.getValues(f);

float y = f[Matrix.MTRANS_Y];

matrix.postTranslate(0, 10);

canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);

canvas.drawBitmap(picture, matrix, this.painter);

float[] f1 = new float[9];

matrix.getValues(f1);

float y1 = f1[Matrix.MTRANS_Y];

if (y1 >= 800) {

matrix.setTranslate(0, 0);

}

}

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (canvas != null) {

surfaceHolder.unlockCanvasAndPost(canvas);

}

}

}

}

}

}

调用的activity

package com.example.myapp;

import android.app.Activity;

import android.graphics.PixelFormat;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.View;

import android.view.ViewGroup;

import android.webkit.WebView;

import android.widget.LinearLayout;

import android.widget.ScrollView;

public class MyActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ZenClockSurface sfvTrack = (ZenClockSurface)findViewById(R.id.zenClockSurface1);

sfvTrack.setZOrderOnTop(true); // necessary

SurfaceHolder sfhTrack = sfvTrack.getHolder();

sfhTrack.setFormat(PixelFormat.TRANSLUCENT);

WebView webview = (WebView) findViewById(R.id.webview);

webview.getSettings().setJavaScriptEnabled(true);

webview.loadUrl("http://m.vip.com");

}

}

布局。

android:id="@+id/RelativeLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@color/red"

android:orientation="vertical" >

android:id="@+id/zenClockSurface1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"/>

使SurfaceView透明是下面这几句

ZenClockSurface sfvTrack = (ZenClockSurface)findViewById(R.id.zenClockSurface1);

sfvTrack.setZOrderOnTop(true);    // necessary

SurfaceHolder sfhTrack = sfvTrack.getHolder();

sfhTrack.setFormat(PixelFormat.TRANSLUCENT);

这句是清屏。

canvas.drawColor(0,android.graphics.PorterDuff.Mode.CLEAR);

http://www.lbrq.cn/news/1255699.html

相关文章:

  • 做网站一定要注册域名吗/网络推广渠道和方法
  • 网站申请备案成功后怎么建设/西安关键词排名软件
  • 全面加强政府网站建设/网络营销策划方案ppt模板
  • 设计师招聘/合肥网站seo整站优化
  • 网站开发心得体会/seo网站管理
  • 芜湖网站建设 文库/买卖链接网站
  • 政府门户网站建设不断优化升级/搜索引擎谷歌
  • 网站开发与经营/网站的排名优化怎么做
  • 外贸推广方式都有哪些/北京seo服务
  • 织梦欧美网站模板/推广服务公司
  • 企业做网站需要那些条件/今日头条(官方版本)
  • 网站群站优化/如何在百度上建立网站
  • 可画官网登录入口/仁茂网络seo
  • 盘锦门户网站建设/网站快速优化排名app
  • wordpress 3.5 基础教程/seo用什么工具
  • 大连网站建设哪里好/网络软文营销
  • 可以做视频网站的源码/企业网站设计毕业论文
  • 常用网站推广方法的适用性/长春seo按天计费
  • 自己做游戏的网站/目前最新的营销模式有哪些
  • 江苏网站建设基本流程/潍坊关键词优化平台
  • 15年做啥网站致富/站长之家字体
  • b站破解2023免费版下载/seo挖关键词
  • 重庆市建设厅官方网站/快手seo关键词优化
  • wordpress仿站主题/sem什么意思
  • 龙华三网合一网站建设/搜索引擎营销怎么做
  • 引流平台有哪些/优化营商环境发言稿
  • 青岛公司网站建设/石家庄网站建设方案优化
  • 室内设计网站免费素材/seo公司推广
  • 做期货苯乙烯的网站/网络营销推广的方法
  • dede网站备份/专业北京seo公司
  • Goby 漏洞安全通告| NestJS DevTools /inspector/graph/interact 命令执行漏洞(CVE-2025-54782)
  • Electron-updater + Electron-builder + IIS + NSIS + Blockmap 完整增量更新方案
  • Qt按键响应
  • 在Ansys Mechanical中对磨损进行建模
  • Linux网络编程 --- 多路转接select
  • Rust:开发 DLL 动态链接库时如何处理 C 字符串