upload android base code part7

This commit is contained in:
August 2018-08-08 18:09:17 +08:00
parent 4e516ec6ed
commit 841ae54672
25229 changed files with 1709508 additions and 0 deletions

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.layouttranschanging"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="16"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:hardwareAccelerated="true">
<activity android:label="@string/app_name"
android:name="com.example.android.layouttranschanging.LayoutTransChanging">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/addButton"
android:id="@+id/addButton"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/removeButton"
android:id="@+id/removeButton"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:id="@+id/container"/>
</LinearLayout>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<string name="app_name">LayoutTransChanging</string>
<string name="addButton">Add Item</string>
<string name="removeButton">Remove Item</string>
</resources>

View file

@ -0,0 +1,120 @@
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.layouttranschanging;
import android.animation.LayoutTransition;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
/**
* This example shows how to use LayoutTransition to animate simple changes in a layout
* container.
*
* Watch the associated video for this demo on the DevBytes channel of developer.android.com
* or on YouTube at https://www.youtube.com/watch?v=55wLsaWpQ4g.
*/
public class LayoutTransChanging extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button addButton =
(Button) findViewById(R.id.addButton);
final Button removeButton =
(Button) findViewById(R.id.removeButton);
final LinearLayout container =
(LinearLayout) findViewById(R.id.container);
final Context context = this;
// Start with two views
for (int i = 0; i < 2; ++i) {
container.addView(new ColoredView(this));
}
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Adding a view will cause a LayoutTransition animation
container.addView(new ColoredView(context), 1);
}
});
removeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (container.getChildCount() > 0) {
// Removing a view will cause a LayoutTransition animation
container.removeViewAt(Math.min(1, container.getChildCount() - 1));
}
}
});
// Note that this assumes a LayoutTransition is set on the container, which is the
// case here because the container has the attribute "animateLayoutChanges" set to true
// in the layout file. You can also call setLayoutTransition(new LayoutTransition()) in
// code to set a LayoutTransition on any container.
LayoutTransition transition = container.getLayoutTransition();
// New capability as of Jellybean; monitor the container for *all* layout changes
// (not just add/remove/visibility changes) and animate these changes as well.
transition.enableTransitionType(LayoutTransition.CHANGING);
}
/**
* Custom view painted with a random background color and two different sizes which are
* toggled between due to user interaction.
*/
private static class ColoredView extends View {
private boolean mExpanded = false;
private LayoutParams mCompressedParams = new LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 50);
private LayoutParams mExpandedParams = new LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, 200);
private ColoredView(Context context) {
super(context);
int red = (int)(Math.random() * 128 + 127);
int green = (int)(Math.random() * 128 + 127);
int blue = (int)(Math.random() * 128 + 127);
int color = 0xff << 24 | (red << 16) |
(green << 8) | blue;
setBackgroundColor(color);
setLayoutParams(mCompressedParams);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Size changes will cause a LayoutTransition animation if the CHANGING
// transition is enabled
setLayoutParams(mExpanded ? mCompressedParams : mExpandedParams);
mExpanded = !mExpanded;
requestLayout();
}
});
}
}
}