当前位置:首页 » 安卓系统 » android动画的实现

android动画的实现

发布时间: 2024-05-30 18:25:25

❶ Android实现View平移动画的方式

平移动画,大概是我们最容易想到的实现方式,但并非能满足所有需求。这种方式不能控制进度,设置好动画持续时间后,就会一直到结束。

通过drawBitmap在不同的位置画出图片,适合图片作为平移动画的需求。经测试,使用Matrix方式对部分待透明度以及过大的图片无法绘制,通过计算位置直接绘制正常。

改变长度和改变位置是一个道理。获取View的位置,然后通过进度计算出View的宽度,再通过setLayoutParams改变View大小。这个方式满足我们的需求,采用的此方式。

以上。如有错误,欢迎指正!

个人简介:

❷ 【Android 动画】动画详解之补间动画(一)

之前很早就想写写Android 的动画,最近刚好有时间,大概聊一聊安卓动画。

个人习惯将动画分为:补间动画(透明度、旋转、位移、缩放)、帧动画、和属性动画,这一篇,我们先说说补间动画。
补间动画这个词出于flash,在两个关键帧( 可以理解成动画开始和结束 )中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。
实际上,Android 的补间动画也是由我们指定动画开始、动画结束2个关键点,中间部分的动画由系统完成

在正式开始之前,我们先说下Android 系统的坐标系,屏幕左上角为坐标原点,假如屏幕为1080*1980,那么左上角为(0,0),右上角为(1080,0),左下角为(0,1980),右下角为(1080,1980)

所有动画有以下公共属性,注释比较详细,这里就不在详述了

ScaleAnimation有3种构造方法

我们先看第一种,其起始比例为0,缩放比例为1.4,即放大到1.4倍

效果如下:

第二种,pivotx,pivotY分别代表起始位置的x、y方向的坐标,我们设置为(100,100)

效果如下:

第三种,pivotXType和pivotYType有2种模式,RELATIVE_TO_SELF(相对于自身)和RELATIVE_TO_PARENT(相对于父布局),如果设置这个,pivotx,pivotY的值就应该是0-1的浮点数,这里分别对应xml中的%(自身)和%p(父布局)

TranslateAnimation有2种构造方法,和ScaleAnimation类似

效果如下:

效果如下:

RELATIVE_TO_PARENT

效果如下:

RotateAnimation有3种构造方法

顺时针720度

效果如下:

逆时针720度

效果如下:

效果如下:

再来RELATIVE_TO_PARENT

效果如下:

这是什么鬼???怎么跑到屏幕外面去了?
原来设置为RELATIVE_TO_PARENT时,旋转中心x方向应该为该空间离左边的边距+父布局宽度/2,y方向同理,而此时,我们布局中红色的Textview为居中状态,所以旋转中心为屏幕右下角。让我们来看个例子
修改布局如下:

效果如下:

这时,我们看到旋转中心x方向为离左边100dp处

AlphaAnimation只有1种构造方法

其中fromAlpha为动画开始的透明度;toAlpha为动画结束的透明度

效果如下:

效果如下:

AnimationSet是一个动画的集合,可以按照添加的顺序播放动画,让我们来看个例子,通过组合动画,实现旋转渐入动画

效果如下:

到这里,补间动画就介绍完了

参考资料: 自定义控件三部曲之动画篇

❸ 濡备綍鍦ˋndroid涓瀹炵幇鎶樼焊锷ㄧ敾

甯冨眬镄勫疄鐜
璁捐$殑绗涓涓鍏幂礌鏄鍙浠ュ规姌镄勫竷灞銆傛垜浠镄勫仛娉旷浉褰揿ぇ鑳嗭细涓诲竷灞锛团oldableItemLayout锛夊彧鍖呭惈涓涓鐗瑰畾镄勫竷灞锛埚湪baselayout锛夈傚湪锷ㄧ敾涓锛孊aseLayout灏嗗畠镄勫唴瀹瑰啓鍏ュ埌缂揿瓨涓锛岃繖鏄涓涓镙规嵁铡熷嫔竷灞镄勫昂瀵镐笓闂ㄥ垱寤虹殑Bitmap瀵硅薄銆

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

; html-script: false ]
class FoldableItemLayout extends FrameLayout {
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
Bitmap cacheBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mBaseLayout.setCacheCanvas(new Canvas(cacheBitmap));
}
}

class BaseLayout extends FrameLayout {
private Canvas mCacheCanvas;

private void setCacheCanvas(Canvas cacheCanvas) {
mCacheCanvas = cacheCanvas;
}

@Override
public void draw(Canvas canvas) {
mCacheCanvas.drawColor(0, PorterDuff.Mode.CLEAR);
super.draw(mCacheCanvas);
}
}

姝ゅ栵纴杩橀渶瑕佷袱涓棰濆栫殑瑙嗗浘锛圥artView锛夆斺旂敤浜庡浘镀忕殑涓娿佷笅涓ゅ崐閮ㄥ垎銆傚畠浠灏嗗湪缂揿瓨涓鏄剧ず瀵瑰簲镄勬暟鎹锛岃繖浜涙暟鎹浠h〃浜呜ュ浘镀忥纸Bitmap锛夌殑涓婂崐閮ㄥ拰涓嫔崐閮ㄣ备袱涓瑙嗗浘濉鍏呬简涓诲竷灞镄勬暣涓鍖哄烟锛屼絾鍙鏄剧ず镓闇镄勯儴鍒嗐备负浜呜揪鍒拌繖绉嶆晥鏋滐纴鎴戜滑璁$畻浜嗕綅锲剧殑鐣岄檺钬斺斿湪onDraw()鏂规硶涓锛屾垜浠璁╃敾甯冮氲繃[drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)](http://developer.android.com/reference/android/graphics/Canvas.html#drawBitmap(android.graphics.Bitmap, android.graphics.Rect, android.graphics.RectF, android.graphics.Paint))鏂规硶𨱒ョ粯鍒舵墍闇镄勯儴鍒嗐
铹跺悗阃氲繃setRotationX()鏂规硶璁剧疆鐩稿簲镄勮掑害锛岃炬硶镞嬭浆杩欎簺棰濆栫殑瑙嗗浘锛屼粠钥屽疄鐜板浘镀忎笂鍗婇儴鍜屼笅鍗婇儴镄勭嫭绔嬫棆杞銆备负浜嗗疄鐜拌繖涓锷熻兘锛屾垜浠涓篎oldableItemLayout娣诲姞浜嗕竴涓钖崭负FoldRotation镄勬柊鍙傛暟銆
FoldRotation鍙傛暟锣冨洿鏄锛-180锛180]锛
FoldRotation=0锛氢袱涓閮ㄥ垎閮戒笉镞嬭浆銆傚湪杩欑嶆儏鍐典笅锛屾垜浠鍙浠ヨ烦杩囦綅锲剧紦瀛桡纴瀹炴椂镄勬樉绀哄师濮嬬殑甯冨眬銆
0 <FoldRotation<90锛氢笅灞傜殑閮ㄥ垎镞嬭浆鍒 FoldRotation瑙掑害;涓婂眰閮ㄥ垎涓嶆棆杞銆
-90<FoldRotation<0:鍙链変笂灞傞儴鍒嗘棆杞銆
90铌FoldRotation<180:涓嫔眰閮ㄥ垎涓嶅啀鏄剧ず銆傚湪杩欑嶆儏鍐典笅锛屽寘钖涓嬩竴甯冨眬镄凢oldableItemLayout搴旇ヨ嗙洊褰揿墠镄凢oldableItemLayout銆
-180<FoldRotation铌-90:涓婂眰閮ㄥ垎涓嶅啀鏄剧ず銆傚湪杩欑嶆儏鍐典笅锛屽寘钖鍏埚墠镄勫竷灞FoldableItemLayout搴旇ヨ嗙洊褰揿墠镄凢oldableItemLayout銆
FoldRotation=180锛氢袱涓閮ㄥ垎閮介殣钘忋
鐜板湪链変简涓涓浜屽眰甯冨眬锛岃兘澶颎沧姌鍙犫濆畠鍖呭惈镄勫厓绱狅纴杩欐牱灏卞彲浠ュ仛鍑轰竴涓狥oldableListLayout钬斺斾竴涓绫讳技鍒楄〃瑙嗗浘镄勫竷灞锛屽畠鍒涘缓鍒楄〃鍏幂礌锛屽苟阃氲繃浣跨敤BaseAdapter灏嗗叾灏佽呮垚FoldableItemLayout銆傚湪杩欑嶆儏鍐典笅锛屾垜浠杩树娇鐢ㄤ简FoldRotation鍙傛暟鐢ㄦ潵纭瀹氩厓绱犲湪鍒楄〃涓镄勪綅缃銆
渚嫔傦纴FoldRotation= 30锛屽垪琛ㄧ涓涓鍏幂礌锛团oldableItemLayout锛夌殑FoldRotation鍊间负30锛岃岀浜屼釜鍏幂礌钬斺擣oldRotation= 150锛屾渶澶氩彲浠ュ悓镞舵樉绀轰笉瓒呰繃2涓鍏幂礌銆侳oldRotation鍙傛暟鍊肩殑锣冨洿渚濊禆浜庡厓绱犵殑鏁伴噺锛氩傛灉鍒楄〃鍖呭惈涓涓鍏幂礌锛岄偅涔埚彇鍊艰寖锲村氨浼氭槸[0,0]锛2钬斺摆0锛180]锛3钬斺摆0锛360]绛夈
镓揿紑锷ㄧ敾
鍦ㄥ︿细浜嗗湪鍑犱釜鍏幂礌涔嬮棿浣跨敤鎶桦彔锷ㄧ敾婊氩姩涔嫔悗锛屾垜浠瑙e喅浜呜繖涓閲嶅ぇ镄勬写鎴桡细浠庝换镒忕殑璧风偣鐢熸垚鍏幂礌镄勬墦寮锷ㄧ敾銆傚埄鐢ㄥ凡缁忓疄鐜扮殑 FoldableListLayout锛屽苟浣垮叾鍦ㄤ袱涓鍏幂礌涔嬮棿杩涜屽垏鎹锛氩皝闱㈠竷灞鍜岃︽儏甯冨眬銆傝繖涓ょ嶅厓绱犻兘搴旇ユ樉绀哄湪灞忓箷涓婏纴浣呜︽儏鍏幂礌搴旇ユ槸闅愯棌镄勚傚綋鐢ㄦ埛镣瑰嚮涓涓灏侀溃鍏幂礌镞讹纴搴旂敤绋嫔簭浼氲颁綇褰撴椂镄勪綅缃锛屽苟浣跨敤鐩稿悓澶у皬镄勭┖鍗犱綅绗﹁嗗浘鍙栦唬瀹冿纸浠ュ厤镰村潖灞忓箷涓婄殑鍏朵粬鍏幂礌锛夛纴骞剁Щ锷ㄧ洊鍏幂礌镄勪笅鍗娄笓闂ㄥ垱寤虹殑甯冨眬銆备互钖庤繖绉嶅竷灞灏呜鐢ㄤ綔 FoldableListLayout镄勭涓涓鍏幂礌銆傜浜屼釜鍏幂礌灏呜镟挎崲涓虹┖鍗犱綅瑙嗗浘锛屼笌灏侀溃鍏幂礌镄勬柟寮忕浉钖屻
瀵归绨
鐪艰佸皝闱㈠厓绱犲凡缁忎粠灞忓箷涓婄殑链鍒濅綅缃灞曞紑锛屽洜姝ゅ湪锷ㄧ敾杩囩▼涓鎴戜滑镄凢oldableListLayout闇瑕佸湪灏侀溃鍏幂礌鍜岃︽儏鍏幂礌镄勪綅缃涔嬮棿绉诲姩銆傝繖灏辨槸涓轰粈涔堣佽颁綇鍦ㄥ姩鐢诲埯濮嫔寲杩囩▼涓姣忎釜鍏幂礌镄勫埯濮嬩綅缃鍜屽ぇ灏忕殑铡熷洜銆傜敱浜庡皝闱㈠拰璇︽儏镄勫ぇ灏忔湁鍙鑳戒笉钖岋纴鎴戜滑闇瑕佸湪锷ㄧ敾链熼棿钖屾椂镓╁𪾢瀹冧滑锛屼互渚夸娇瀹冧滑镄勫藉害涓镊淬
鎴戜滑锘烘湰宸茬粡瀹屽伐锛屽彧宸涓浠朵簨锛氱缉鏀惧悗锛屽皝闱㈢殑楂桦害鍙鑳界湅璧锋潵姣斾笅鍗婇儴鍒嗙殑璇︽儏灏忋傝繖镒忓懗镌浣犻渶瑕侀殣钘忓浘镀忕殑鍓╀綑閮ㄥ垎銆
涓嬮溃镄勫睆骞曟埅锲炬樉绀轰简鍦ㄥ姩鐢荤殑寮濮嬮儴鍒嗘湁涓涓𨱔拌壊鍖哄烟锛屼笅灞傜殑璇︽儏閮ㄥ垎涓庡皝闱㈢殑澶у皬涓岖︺

鎴戜滑涓篎oldableItemLayoutm寮曞叆涓涓棰濆栫殑RollingDistance鍙傛暟瑙e喅浜呜繖涓闂棰樸傝繖涓鍙傛暟璐熻矗浠庢姌绾垮瀭鐩寸Щ锷ㄥ浘镀忋备娇鐢ㄨ繖涓鍙傛暟鍙浠ュ湪锷ㄧ敾镄勭涓閮ㄥ垎涓镄勪笉鐭ヤ笉瑙変腑杞鎹㈣︽儏镄勪竴閮ㄥ垎锛岀劧钖庡湪绗浜岄儴鍒嗕腑鍏ㄥ昂瀵稿𪾢寮銆
锷ㄧ敾鐜板湪灏卞彲浠ヨ繍琛屼简锛屼綑涓嬬殑宸ヤ綔灏辨槸涓洪肩湡镄勬晥鏋沧坊锷犱竴浜涙殚鍖栵纴鎴栦负骞虫粦镄勬牱瀛愭坊锷犱簺阒村奖銆傛湰绫诲簱鍦℅itHub涓婂彲浠ラ殢镒忎娇鐢锛屽湪闾i噷浣犺缮鍙浠ユ垒鍒颁竴涓浣跨敤渚嫔瓙銆

❹ 如何通过android实现alpha渐变动画效果

Android动画分为四种:alpha(渐变透明度),scale(渐变尺寸伸缩),translate(画面转换位置移动),rotate(画面转移旋转);今天先写第一个动画alpha。
动画效果有两种实现:
一、在xml中定义:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字

长整型值:
ration 属性为动画持续时间
说明:
时间以毫秒为单位
-->

<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:ration="5000"
/>

</set>
二、在页面Activity中声明:
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);

完成动画渐变透明度的参数设定后,我们就要开始在应用中使用它:
public class SplashActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);

View view = View.inflate(SplashActivity.this, R.layout.welcome, null);
setContentView(view);
//动画效果参数直接定义
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);

//动画效果从XMl文件中定义
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
view.setAnimation(animation);
}
}
这样我们就完成了预定的动画效果,但是我们的最终目的是动画效果完毕以后跳转到相应的页面,所以我们对动画添加了监听:
animation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
}
});
这样的话,我们在动画的持续时间中预加载我们的资源,当动画结束以后跳转到我们的主页面;
详细步骤和完整源码可以参考:http://www.cnblogs.com/sishuiliuyun/p/3167581.html

❺ android 为什么要用代码实现动画

Android的动画归纳起来有帧动画,和属性动画。一般情况下,帧动画实现起来会相对简单很多,只要美工提供一帧一帧的图片就可以很容易的实现,代码不用很复杂。但是相对而言,弊端有很多,比如内存占用大,动画不流畅,所以很多时候,我们还是属性动画。
在Android4.0之前我们可以使用Animation实现简单的动画,但是一些复杂的动画,我们想要组合起来就会复杂很多,代码量也会大很多。所以Android4.0以后推出了ObjectAnim相关的API,会让动画更加简单。另外有些特别复杂的动画,我们可以自定义View在onDraw中实现相关的绘图,让画面重复绘制,产生动画效果,但这其实也应该属于属性动画的范畴,但确实Android中高级动画的实现方式。

❻ Android 实现Gif播放的七种方法

背景:在项目里某个需求实现的时候,有个图标有一个动画效果,为了达到UI要求的效果,试过多种方案,在这篇文章中讲一下这些方案的用法,以及结合项目的现状,做的一个方案选择。

Link: https://github.com/bumptech/glide
Glide是Android上比较常见的图片加载框架了,在Android上是数一数二的图片加载框架代表了,当然,早期的类似 ImageLoader Picasso 这些,算是比较具有历史性的图片加载框架了。

Glide加载Gif的话,用到的是 GifDrawable 这个对象,一般我们用

去创建,当然,如果你加载的是 Bitmap 或 GifDrawable,你可以判断这个可绘制对象是否实现了 Animatable:

Link: https://github.com/koral--/android-gif-drawable
android-gif-drawable也是Android上比较火热的图片加载框架

这个库播放Gif用到的也是 pl.droidsonroids.gif.GifDrawableGifDrawable 对象,不像Glide,它的创建的方式比较简单

可以根据需求,选择不同的构造器创建对象

GifDrawable 实现了 Animatable 跟 MediaPlayerControl 接口,所以你可以使用他们各自的方法甚至更多

使用 MediaPlayerControl
MediaPlayer的标准控件(如VideoView)可用于控制GIF动画并显示其当前进度。
只需在 MediaController 上将 GifDrawable 设置为 MediaPlayer ,如下所示:

更多详细用法见 Github Usage

Link:android.jar-android.graphics.drawable
AnimatedImageDrawable是Android官方推出播放动图的类,优点是官方稳定高效,缺点是仅支持Android P版本(api=28)以上

使用方法也比较简单

Link:android.jar-android.graphics
android.graphics.Movie 也是Android自带的类,可以用来加载播放Gif动画,实现起来相对来说可能比较繁琐,官方已经将这个类标记为 @Deprecated {@link android.graphics.drawable.AnimatedImageDrawable} ,但还是有必要讲下。
主要的构造方法有:

按来源分别可以从Gif文件的输入流,文件路径,字节数组中得到Movie的实列。然后我们可以通过操作Movie对象来操作Gif文件。
下面介绍下几个方法:

关键是Movie官方没有给出回调监听,故我们需要手动做监听。
有兴趣的可以看这一篇文章,写的很不错。 Android自定义View播放Gif动画

当然,除了这些之外,还有跨平台的解决方案,比起传统的gif文件, Lottie 则是使用json文件来代表动画源文件。

Lottie 对APK的影响有多大?

Add the dependency to your project build.gradle file:

核心类:

加载动画:
Lottie 可以加载动画来自:

最简单的形式就是使用 LottieAnimationView :
推荐使用 lottie_rawRes ,相对于使用指定的字符串文件名,你可以使用通过 R 文件以静态的引用形式指定你的动画文件.

更多详细介绍及用法见 官方文档

Link: https://android.googlesource.com/platform/frameworks/ex/+/android-5.0.2_r1/framesequence
FrameSequenceDrawable 更多的是对webp格式的一个支持,所以当要使用时,需要将你的gif转为webp

来看下主要的构造方法:

使用方法如下:

[Facebook/Fresco] ( https://github.com/facebook/fresco ) 也支持gif的加载,大同小异,这里就不再过多介绍了。

Glide在部分设备上遇到了Gif变慢的问题,详见 issues_2471
考虑到项目已经集成了Glide了,就不打算再继续引入第三方的库了。又因为原素材的问题,无法导出Lottie格式的json文件。
故这一块当时做的就是 >=androidP 用AnimatedImageDrawable,<androidP 就用Glide,仅供参考。

❼ 怎么用Android实现ActionSheet效果

需要在项目中使用到类似iOS ActionSheet的动画效果,在查阅了一些资料后,顺利实现了,在这里把方法分享给大家。


1、首先在res/anim文件夹下创建slide_up.xml和slide_down.xml(文件名随意),代码如下:

3.最后,在dialog弹出之前,使用刚刚实现的动画效果:

dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;

❽ 如何制作安卓手机开机动画

先说开机动画实现原理:

Android的动画是由一系列的连续PNG图片作为帧组成的动画形式。

不是合成为一张GIF图片,而是一个文件包,将各帧PNG图片以压缩方式保存。

这个保存的文件名就是bootanimation.zip,这个文件是zip压缩文件,压缩方式要求是存储压缩

开机动画文件bootanimation.zip的文件内容:

一般包含一个文件和两个目录:

1.动画属性描述文件:desc.txt--------这是一个保存形式为ANSI格式,用于设置这个动画像素(大小),帧数,闪烁次数,文件夹名称等;

2.第一阶段动画图片目录:part0-------存放每帧PNG图片文件夹;

3.第二阶段动画图片目录:part1--------存放每帧PNG图片文件夹;

接着看看desc.txt文件:

我们打开这个文本文件,可以看到这样的格式:(注意空格)

320 480 30 -----------------这里的320代表图片的像素(大小)宽度,480代表图片的像素(大小)高度,30代表帧数,就是每秒播放的图片数

p 1 0 part0 -----------------这里的p代表标志符,1代表循环次数为1次,0代表阶段间隔时间为0,part0代表对应的文件夹名;

p 0 10 part1 ----------------这里的p代表标志符,0代表循环次数为0次,10代表阶段间隔时间为10,part1代表对应的文件名;

标志符:必须是 p 循环次数:0 表示本阶段无限循环

阶段切换间隔时间:单位是一个帧的持续时间,比如帧数是30,那么帧的持续时间就是1秒/30 = 33.3毫秒。阶段切换间隔时间期间开机动画进程进入休眠,把CPU时间让给初始化系统使用。也就是间隔长启动会快,但会影响动画效果。

part0和part1文件夹内包含的是两个动画的系列图片,图片为PNG格式。系列图片文件的加载刷新按文件名的名称排序。

bootanimation.zip制作过程:

1.找到一组连续的动画,进行批量压缩处理,把像素大小调到适合自己的手机即可,输出格式为png,名称为一组连续数字比如0000.png,0001.png。

2.然后分别放到part0和part1,根据实际情况修改desc.txt

3.最后一步是压缩成名为bootanimation.zip的压缩文件,要注意:压缩格式必须是.zip, 还有最重要的是,压缩方式必须选择为“存储”否则系统读不到的。

4.完成,可以替换原有开机动画啦!

安卓手机开机动画替换教程:

1.首先你的手机已经ROOT了,系统ROM要有Root权限的。

2.手机上装有Root Explorer管理器或ES管理器(任何可以获取root权限浏览修改系统文件的管理器都可以)。

3.把bootanimation.zip放到SD卡,(注意这个bootanimation.zip不要解压)

4.用Root Explorer挂载"读写"复制到/system/customize/resource或者/system/media(HTC带sense的手机一般只有/system/customize/resource,其他手机ROM一般开机动画都在system/media目录:华为的有可能在/cust/telecom/cn/media下)下覆盖。

5.重启手机就可以看到效果了

热点内容
美版安卓系统为什么连不了网 发布:2024-11-26 21:51:36 浏览:613
用公司服务器搭建网站 发布:2024-11-26 21:42:00 浏览:357
忘记密码魅族手机如何清除数据 发布:2024-11-26 21:34:17 浏览:155
达内php视频 发布:2024-11-26 21:32:09 浏览:556
编译器分析 发布:2024-11-26 21:13:01 浏览:832
存储过程execute 发布:2024-11-26 21:11:02 浏览:255
石器时代合成脚本 发布:2024-11-26 20:57:07 浏览:940
漏油器密码怎么改密码 发布:2024-11-26 20:30:11 浏览:14
linux编码命令 发布:2024-11-26 20:23:13 浏览:801
密码加密工具 发布:2024-11-26 20:23:06 浏览:692