如果您对Javacom.android.build.transform.api.TransformException感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Javacom.android
如果您对Java com.android.build.transform.api.TransformException感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Java com.android.build.transform.api.TransformException的各种细节,此外还有关于Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?、Android 如何切换到 Transform API?、android.transition.ChangeImageTransform的实例源码、android.transition.ChangeTransform的实例源码的实用技巧。
本文目录一览:- Java com.android.build.transform.api.TransformException
- Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?
- Android 如何切换到 Transform API?
- android.transition.ChangeImageTransform的实例源码
- android.transition.ChangeTransform的实例源码
Java com.android.build.transform.api.TransformException
我试图在我的应用程序中集成Google登录,我添加了以下库:
compile ''com.google.android.gms:play-services-identity:8.1.0''compile ''com.google.android.gms:play-services-plus:8.1.0''
还将其添加到项目构建gradle:
classpath ''com.google.gms:google-services:1.4.0-beta3''
还要添加插件到应用程序构建gradle:
apply plugin: ''com.google.gms.google-services''
然后添加所需的权限,但是当我尝试运行我的应用程序时,收到此错误:
Error:Execution failed for task '':app:transformClassesWithDexForDebug''. com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ''command ''C:\Program Files\Java\jdk1.8.0\bin\java.exe'''' finished with non-zero exit value 2
答案1
小编典典尝试添加multiDexEnabled true
到你的应用程序build.gradle
文件中。
defaultConfig { multiDexEnabled true}
Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?

Remove jackOption from defaultConfig in build.gradle
Add following lines in Application gradle
dependencies {
classpath ''com.android.tools.build:gradle:2.3.1''
classpath ''me.tatarka:gradle-retrolambda:3.2.3''
}
And add following line in build.gradle as below:
apply plugin: ''me.tatarka.retrolambda''
Hope this will help.
Android 如何切换到 Transform API?
摘要: 如果你的 Android 构建中涉及到字节码插装(bytecode instrumentation),或者应用中提供了进行插装的插件,并希望它能支持 Instant Run,那么你必须切换到 Transform API。
目前,字节码插装虽然可以添加到构造过程中,但还没有对应的 API。通用的方法是找到 dx 任务,抓取其输入,并替换成自己的输出。随后,任务依赖就不得不重新连接,以便将新的中间任务纳入。
该方法存在一定的问题,原因如下:
-无法区分某些输入(如子模块与外部库)
-主要 dex 类列表的计算也必须包含插装输出,因此增加了处理多个遗留dex的难度。
-将一个以上第三方插装合并时会非常不稳定,而且容易被破坏。
除此之外,该方法不支持 Instant Run。尽管原始构造的APK的确能通过常规的构建步骤,热调换(hotswap)模式却可运行不同的任务。
在常规构造中,Instant Run添加了以下步骤:
-用项目类插装为代码替换添加间接法。
-复制类,以便在随后进行比较并生成覆盖类
然而,必须在任何第三方插装之后,才能执行此步骤,而以前的插装机制(在最后dx之前添加)不可能出现这种情况。
在hotswap构造时, Instant Run 会运行 java 编译程序,并将输出与先前构造的输出进行比较,以生成覆盖类。随后, Instant Run 会运行不同的dx任务,该任务仅对覆盖类进行远距离交换。这一流程和常规的构造有很大差别,而且之前的连接插装方法也完全没有使用该流程。
为了解决这个问题,我们创建了 Transform API 。目的在于提供将第一方和第三方插装连通并整合至构造流程的 API 。该 API 不处理Gradle任务,但处理需要插装的其他东西,用插件进行任务实体化和布线处理。
访问http://tools.android.com/tech-docs/new-build-system/transform-api可了解更多关于transform API的信息
目前, Transform API 还在测试阶段,我们希望能尽快进入平稳运行阶段,因此希望能得到你的建议。请加入我们的开发谷歌组,并提出建议:https://groups.google.com/forum/#!forum/adt-dev
OneAPM Mobile Insight 以真实用户体验为度量标准进行 Crash 分析,监控网络请求及网络错误,提升用户留存。访问 OneAPM 官方网站感受更多应用性能优化体验,想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
android.transition.ChangeImageTransform的实例源码
@Override protected void onCreate(Bundle savedInstanceState) { // getwindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); super.onCreate(savedInstanceState); Slide slideIn = new Slide(); slideIn.setDuration(500); //设置为进入 slideIn.setMode(Visibility.MODE_IN); //设置从右边进入 slideIn.setSlideEdge(Gravity.RIGHT); getwindow().setEnterTransition(new ChangeImageTransform().setDuration(3000)); // getwindow().setEnterTransition(new Explode().setDuration(2000)); // getwindow().setExitTransition(new Explode().setDuration(2000)); Slide slideReturn =new Slide(); slideReturn.setDuration(500); slideReturn.setSlideEdge(Gravity.LEFT); slideReturn.setMode(Visibility.MODE_OUT); getwindow().setReturnTransition (slideReturn ); setContentView(R.layout.activity_img_transition); mImageView = (ImageView) findViewById(R.id.img); // Transition sharedElementEnterTransition = getwindow().getSharedElementEnterTransition(); }
private void initAnimation() { if (Build.VERSION.SDK_INT >= 21) { //To enable window content transitions in your code instead,call the Window.requestFeature() method: getwindow().requestFeature(android.view.Window.FEATURE_CONTENT_TRANSITIONS); Transition ts_enter = new ChangeImageTransform(); //Slide(); //Explode(); Transition ts_exit = new ChangeTransform(); ts_enter.setDuration(400); ts_exit.setDuration(400); /* If you have set an enter transition for the second activity,the transition is also activated when the activity starts. */ getwindow().setEnterTransition(ts_enter); getwindow().setExitTransition(ts_exit); } }
public FragmentSharedElementTransition() { addTransition(new ChangeBounds()); addTransition(new Fade()); addTransition(new ChangeImageTransform()); addTransition(new ChangeTransform()); setInterpolator(new FastOutSlowInInterpolator()); }
@TargetApi(TARGET_API) private Transition getDefaultTransition() { TransitionSet set = new TransitionSet(); set.addTransition(new ChangeBounds()); set.addTransition(new Fade()); set.addTransition(new ChangeImageTransform()); set.setInterpolator(new FastOutSlowInInterpolator()); return set; }
public ImageTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()); addTransition(new ChangeTransform()); addTransition(new ChangeImageTransform()); setPathMotion(new ArcMotion()); }
public ImageTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()); addTransition(new ChangeTransform()); addTransition(new ChangeImageTransform()); setPathMotion(new ArcMotion()); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); super.addListener(this); }
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public DetailsTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) .addTransition(new ChangeImageTransform()); }
@Override public void showMovieDetails(Movie movie,MovieListItembinding B) { setSelectedMovie(movie); if (isTwoPane()) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { fragmentTwoPane = MovieDetailFragment.newInstance(movie); fragmentTwoPane.setSharedElementEnterTransition(new ChangeImageTransform()); getSupportFragmentManager().beginTransaction() .replace(R.id.movieDetailContainer,fragmentTwoPane) .addToBackStack(null) .addSharedElement(B.imagePoster,getString(R.string.poster_image_transition)) .commit(); } else { loadTwoPaneMovieDetails(movie); } } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //Shared Element Transition of Poster Image from Master List to Detail screen ActivityOptionsCompat profileImageTransitionoptions = ActivityOptionsCompat .makeSceneTransitionAnimation(this,B.imagePoster,getString(R.string.poster_image_transition)); MovieDetailActivity.start(this,movie,profileImageTransitionoptions); } else { MovieDetailActivity.start(this,movie); } } }
public SharedElementTransition(Context context,AttributeSet attrs) { super(context,attrs); fabTransition = new CircleTransition(context,attrs); imageTransition = new ChangeImageTransform(context,attrs); defaultTransition = new ChangeBounds(context,attrs); fabTransitionName = context.getString(R.string.transition_fab); transitionProperties = initTransprops(); if (BuildConfig.DEBUG && TextUtils.isEmpty(fabTransitionName)) { throw new AssertionError("Transition name should not be empty"); } }
public SharedElementTransition(Context context,attrs); fabTransitionName = context.getString(R.string.transition_fab); transitionProperties = initTransprops(); if (BuildConfig.DEBUG && TextUtils.isEmpty(fabTransitionName)) { throw new AssertionError("Transition name should not be empty"); } }
private void setupTransition() { int transitionType = getIntent().getIntExtra(EXTRA_TRANSITION_TYPE,-1); Window window = getwindow(); window.requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); window.setAllowEnterTransitionOverlap(true); switch (transitionType) { case TRAN_TYPE_EXPLODE: window.setEnterTransition(new Explode()); window.setExitTransition(new Explode()); break; case TRAN_TYPE_SLIDE: window.setEnterTransition(new Slide(Gravity.LEFT)); window.setExitTransition(new Slide(Gravity.RIGHT)); break; case TRAN_TYPE_FADE: window.setEnterTransition(new Fade(Fade.MODE_IN)); window.setExitTransition(new Fade(Fade.MODE_OUT)); break; case TRAN_TYPE_VIEW_SHARE: window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS); window.setSharedElementEnterTransition(new ChangeImageTransform()); window.setSharedElementExitTransition(new ChangeImageTransform()); break; } }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private MorphTransition(int shape) { setordering(ORDERING_TOGETHER); addTransition(new MusicCoverViewTransition(shape)); addTransition(new ChangeImageTransform()); addTransition(new ChangeTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
public DetailTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) . addTransition(new ChangeImageTransform()); }
private void setTransition() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return; } final TransitionSet transition = new TransitionSet(); ChangeBounds transition1 = new ChangeBounds(); transition.addTransition(transition1); ChangeTransform transition2 = new ChangeTransform(); transition.addTransition(transition2); ChangeClipBounds transition3 = new ChangeClipBounds(); transition.addTransition(transition3); ChangeImageTransform transition4 = new ChangeImageTransform(); transition.addTransition(transition4); transition.setDuration(SHARED_ELEMENT_TRANSITION_DURATION); FastOutSlowInInterpolator interpolator = new FastOutSlowInInterpolator(); transition1.setInterpolator(interpolator); transition2.setInterpolator(interpolator); transition3.setInterpolator(interpolator); transition4.setInterpolator(interpolator); final GravityArcMotion pathMotion = new GravityArcMotion(); transition.setPathMotion(pathMotion); getwindow().setSharedElementEnterTransition(transition); getwindow().setSharedElementReturnTransition(transition); getwindow().setSharedElementsUSEOverlay(false); Slide slide = new Slide(Gravity.TOP); slide.setInterpolator(new LinearOutSlowInInterpolator()); slide.addTarget(appBar); slide.setDuration(225); slide.setStartDelay(100); getwindow().setEnterTransition(slide); Slide slideOut = (Slide) slide.clone(); slideOut.setInterpolator(new FastOutLinearInInterpolator()); slideOut.setStartDelay(0); getwindow().setReturnTransition(slideOut); }
@Override protected Transition createTransition() { TransitionSet transition = new TransitionSet(); transition.addTransition(new ChangeBounds()).addTransition(new ChangeImageTransform()); return transition; }
private void init() { setordering(ORDERING_TOGETHER); this.addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) .addTransition(new ChangeImageTransform()); }
android.transition.ChangeTransform的实例源码
private void startTransition(){ lifeGridFragment = LifeGridFragment.newInstance(); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); if(Build.VERSION.SDK_INT >= 21) { TransitionSet gridTransition = new TransitionSet(); gridTransition.setDuration(600); gridTransition.addTransition(new ChangeBounds()); gridTransition.addTransition((new ChangeTransform())); lifeGridFragment.setSharedElementEnterTransition(gridTransition); } fragmentTransaction.addSharedElement(findViewById(R.id.intro_card_view),getString(R.string.card_view_transition_name)); fragmentTransaction.replace(R.id.container,lifeGridFragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); appBarLayout.setExpanded(false,true); }
@NonNull @Override protected Transition createTransition(@NonNull ViewGroup container,@NonNull View entering,@Nullable View leaving,boolean push) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return new TransitionSet() .setordering(ORDERING_TOGETHER) .addTransition(new Fade(Fade.OUT)) .addTransition(new Fade(Fade.IN)); } final TransitionSet transition = new TransitionSet() .addTransition(new ChangeBounds()) .addTransition(new ChangeClipBounds()) .addTransition(new ChangeTransform()); transition.setPathMotion(new ArcMotion()); return transition; }
private void initAnimation() { if (Build.VERSION.SDK_INT >= 21) { //To enable window content transitions in your code instead,call the Window.requestFeature() method: getwindow().requestFeature(android.view.Window.FEATURE_CONTENT_TRANSITIONS); Transition ts_enter = new ChangeImageTransform(); //Slide(); //Explode(); Transition ts_exit = new ChangeTransform(); ts_enter.setDuration(400); ts_exit.setDuration(400); /* If you have set an enter transition for the second activity,the transition is also activated when the activity starts. */ getwindow().setEnterTransition(ts_enter); getwindow().setExitTransition(ts_exit); } }
@Override @NonNull protected Transition getTransition(@NonNull ViewGroup container,View from,View to,boolean isPush) { TransitionSet transition = new TransitionSet() .setordering(TransitionSet.ORDERING_SEQUENTIAL) .addTransition(new Fade(Fade.OUT)) .addTransition(new TransitionSet().addTransition(new ChangeBounds()).addTransition(new ChangeClipBounds()).addTransition(new ChangeTransform())) .addTransition(new Fade(Fade.IN)); transition.setPathMotion(new ArcMotion()); return transition; }
public FragmentSharedElementTransition() { addTransition(new ChangeBounds()); addTransition(new Fade()); addTransition(new ChangeImageTransform()); addTransition(new ChangeTransform()); setInterpolator(new FastOutSlowInInterpolator()); }
public ImageTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()); addTransition(new ChangeTransform()); addTransition(new ChangeImageTransform()); setPathMotion(new ArcMotion()); }
static public LinkStoryFragment getInstance(Story story,boolean isExpanded) { LinkStoryFragment f = new LinkStoryFragment(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { f.setSharedElementEnterTransition(new ChangeTransform()); } f.setSharedElementEnterTransition(new ChangeBounds()); } Bundle bundle = new Bundle(); bundle.putBoolean("isExpanded",isExpanded); bundle.putParcelable("story",Parcels.wrap(story)); f.setArguments(bundle); return f; }
static public FileStoryFragment getInstance(Story story,boolean isExpanded) { FileStoryFragment f = new FileStoryFragment(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { f.setSharedElementEnterTransition(new ChangeTransform()); } f.setSharedElementEnterTransition(new ChangeBounds()); } Bundle bundle = new Bundle(); bundle.putBoolean("isExpanded",Parcels.wrap(story)); f.setArguments(bundle); return f; }
static public TopicStoryFragment getInstance(Story story,boolean isExpanded) { TopicStoryFragment f = new TopicStoryFragment(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { f.setSharedElementEnterTransition(new ChangeTransform()); } f.setSharedElementEnterTransition(new ChangeBounds()); } Bundle bundle = new Bundle(); bundle.putBoolean("isExpanded",Parcels.wrap(story)); f.setArguments(bundle); return f; }
public ImageTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()); addTransition(new ChangeTransform()); addTransition(new ChangeImageTransform()); setPathMotion(new ArcMotion()); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); super.addListener(this); }
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public DetailsTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) .addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private MorphTransition(int shape) { setordering(ORDERING_TOGETHER); addTransition(new MusicCoverViewTransition(shape)); addTransition(new ChangeImageTransform()); addTransition(new ChangeTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
private void init() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()). addTransition(new ChangeTransform()). addTransition(new ChangeImageTransform()); }
public DetailTransition() { setordering(ORDERING_TOGETHER); addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) . addTransition(new ChangeImageTransform()); }
private void setTransition() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return; } final TransitionSet transition = new TransitionSet(); ChangeBounds transition1 = new ChangeBounds(); transition.addTransition(transition1); ChangeTransform transition2 = new ChangeTransform(); transition.addTransition(transition2); ChangeClipBounds transition3 = new ChangeClipBounds(); transition.addTransition(transition3); ChangeImageTransform transition4 = new ChangeImageTransform(); transition.addTransition(transition4); transition.setDuration(SHARED_ELEMENT_TRANSITION_DURATION); FastOutSlowInInterpolator interpolator = new FastOutSlowInInterpolator(); transition1.setInterpolator(interpolator); transition2.setInterpolator(interpolator); transition3.setInterpolator(interpolator); transition4.setInterpolator(interpolator); final GravityArcMotion pathMotion = new GravityArcMotion(); transition.setPathMotion(pathMotion); getwindow().setSharedElementEnterTransition(transition); getwindow().setSharedElementReturnTransition(transition); getwindow().setSharedElementsUSEOverlay(false); Slide slide = new Slide(Gravity.TOP); slide.setInterpolator(new LinearOutSlowInInterpolator()); slide.addTarget(appBar); slide.setDuration(225); slide.setStartDelay(100); getwindow().setEnterTransition(slide); Slide slideOut = (Slide) slide.clone(); slideOut.setInterpolator(new FastOutLinearInInterpolator()); slideOut.setStartDelay(0); getwindow().setReturnTransition(slideOut); }
public static Object createScale() { return new ChangeTransform(); }
private void init() { setordering(ORDERING_TOGETHER); this.addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) .addTransition(new ChangeImageTransform()); }
今天关于Java com.android.build.transform.api.TransformException的介绍到此结束,谢谢您的阅读,有关Android Java 8 使用 Lamda 报错:Execution failed for task :app:transformJackWithJackForDebug - Android?、Android 如何切换到 Transform API?、android.transition.ChangeImageTransform的实例源码、android.transition.ChangeTransform的实例源码等更多相关知识的信息可以在本站进行查询。
本文标签: