/*
* Copyright (C) 2006 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 android.view;
import android.content.ClipData;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Camera;
import android.graphics.Canvas;
import android.graphics.Insets;
import android.graphics.Interpolator;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Point;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Region;
import android.graphics.Shader;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.util.AttributeSet;
import android.util.FloatProperty;
import android.util.LocaleUtil;
import android.util.Log;
import android.util.Pool;
import android.util.Poolable;
import android.util.PoolableManager;
import android.util.Pools;
import android.util.Property;
import android.util.SparseArray;
import android.util.TypedValue;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.AccessibilityIterators.TextSegmentIterator;
import android.view.AccessibilityIterators.CharacterTextSegmentIterator;
import android.view.AccessibilityIterators.WordTextSegmentIterator;
import android.view.AccessibilityIterators.ParagraphTextSegmentIterator;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityEventSource;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Transformation;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.widget.ScrollBarDrawable;
import static android.os.Build.VERSION_CODES.*;
import static java.lang.Math.max;
import com.android.internal.R;
import com.android.internal.util.Predicate;
import com.android.internal.view.menu.MenuBuilder;
import java.lang.ref.WeakReference;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* <p>
* This class represents the basic building block for user interface components. A View
* occupies a rectangular area on the screen and is responsible for drawing and
* event handling. View is the base class for <em>widgets</em>, which are
* used to create interactive UI components (buttons, text fields, etc.). The
* {@link android.view.ViewGroup} subclass is the base class for <em>layouts</em>, which
* are invisible containers that hold other Views (or other ViewGroups) and define
* their layout properties.
* </p>
*
* <div class="special reference">
* <h3>Developer Guides</h3>
* <p>For information about using this class to develop your application's user interface,
* read the <a href="{@docRoot}guide/topics/ui/index.html">User Interface</a> developer guide.
* </div>
*
* <a name="Using"></a>
* <h3>Using Views</h3>
* <p>
* All of the views in a window are arranged in a single tree. You can add views
* either from code or by specifying a tree of views in one or more XML layout
* files. There are many specialized subclasses of views that act as controls or
* are capable of displaying text, images, or other content.
* </p>
* <p>
* Once you have created a tree of views, there are typically a few types of
* common operations you may wish to perform:
* <ul>
* <li><strong>Set properties:</strong> for example setting the text of a
* {@link android.widget.TextView}. The available properties and the methods
* that set them will vary among the different subclasses of views. Note that
* properties that are known at build time can be set in the XML layout
* files.</li>
* <li><strong>Set focus:</strong> The framework will handled moving focus in
* response to user input. To force focus to a specific view, call
* {@link #requestFocus}.</li>
* <li><strong>Set up listeners:</strong> Views allow clients to set listeners
* that will be notified when something interesting happens to the view. For
* example, all views will let you set a listener to be notified when the view
* gains or loses focus. You can register such a listener using
* {@link #setOnFocusChangeListener(android.view.View.OnFocusChangeListener)}.
* Other view subclasses offer more specialized listeners. For example, a Button
* exposes a listener to notify clients when the button is clicked.</li>
* <li><strong>Set visibility:</strong> You can hide or show views using
* {@link #setVisibility(int)}.</li>
* </ul>
* </p>
* <p><em>
* Note: The Android framework is responsible for measuring, laying out and
* drawing views. You should not call methods that perform these actions on
* views yourself unless you are actually implementing a
* {@link android.view.ViewGroup}.
* </em></p>
*
* <a name="Lifecycle"></a>
* <h3>Implementing a Custom View</h3>
*
* <p>
* To implement a custom view, you will usually begin by providing overrides for
* some of the standard methods that the framework calls on all views. You do
* not need to override all of these methods. In fact, you can start by just
* overriding {@link #onDraw(android.graphics.Canvas)}.
* <table border="2" width="85%" align="center" cellpadding="5">
* <thead>
* <tr><th>Category</th> <th>Methods</th> <th>Description</th></tr>
* </thead>
*
* <tbody>
* <tr>
* <td rowspan="2">Creation</td>
* <td>Constructors</td>
* <td>There is a form of the constructor that are called when the view
* is created from code and a form that is called when the view is
* inflated from a layout file. The second form should parse and apply
* any attributes defined in the layout file.
* </td>
* </tr>
* <tr>
* <td><code>{@link #onFinishInflate()}</code></td>
* <td>Called after a view and all of its children has been inflated
* from XML.</td>
* </tr>
*
* <tr>
* <td rowspan="3">Layout</td>
* <td><code>{@link #onMeasure(int, int)}</code></td>
* <td>Called to determine the size requirements for this view and all
* of its children.
* </td>
* </tr>
* <tr>
* <td><code>{@link #onLayout(boolean, int, int, int, int)}</code></td>
* <td>Called when this view should assign a size and position to all
* of its children.
* </td>
* </tr>
* <tr>
* <td><code>{@link #onSizeChanged(int, int, int, int)}</code></td>
* <td>Called when the size of this view has changed.
* </td>
* </tr>
*
* <tr>
*
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
android 4.12的源码 (2000个子文件)
View.java 671KB
ActivityManagerService.java 632KB
WindowManagerService.java 422KB
PackageManagerService.java 404KB
ContactsContract.java 325KB
WebViewClassic.java 323KB
TextView.java 316KB
Intent.java 266KB
BackupManagerService.java 256KB
AbsListView.java 237KB
AudioService.java 225KB
ViewGroup.java 222KB
Activity.java 213KB
ViewRootImpl.java 212KB
BatteryStatsImpl.java 209KB
PhoneWindowManager.java 199KB
ActivityStack.java 195KB
ActivityThread.java 192KB
Settings.java 170KB
InputMethodManagerService.java 165KB
WifiStateMachine.java 157KB
Editor.java 150KB
PackageParser.java 150KB
Camera.java 149KB
ActivityManagerNative.java 147KB
MediaArtistNativeHelper.java 142KB
PowerManagerService.java 141KB
RIL.java 137KB
MotionEvent.java 136KB
ListView.java 135KB
PhoneWindow.java 133KB
DatabaseMetaData.java 131KB
WebViewCore.java 124KB
ConnectivityService.java 121KB
VideoEditorAPITest.java 120KB
KeyEvent.java 119KB
PackageManagerTests.java 118KB
Settings.java 118KB
EditStyledText.java 117KB
BigDecimal.java 117KB
Character.java 116KB
SyncManager.java 115KB
BluetoothService.java 114KB
GLLogWrapper.java 112KB
PackageManager.java 112KB
ConcurrentSkipListMap.java 110KB
Arrays.java 108KB
AccountManagerService.java 106KB
GsmDataConnectionTracker.java 104KB
CalendarContract.java 104KB
Collections.java 103KB
RecurrenceProcessorTest.java 101KB
GridLayout.java 100KB
Context.java 99KB
VCardBuilder.java 99KB
RecipientEditTextView.java 99KB
JunitTestCases.java 98KB
MediaPlayer.java 98KB
ViewPager.java 97KB
VCardEntry.java 97KB
NumberPicker.java 97KB
GridLayout.java 97KB
MountService.java 95KB
PhoneStatusBar.java 95KB
InputMethodService.java 93KB
LocationManagerService.java 93KB
AccountManager.java 93KB
ObjectInputStream.java 92KB
AudioManager.java 91KB
SQLiteDatabase.java 91KB
PhoneNumberUtils.java 91KB
BatteryStats.java 90KB
Resources.java 90KB
WapPushTest.java 90KB
AbstractQueuedSynchronizer.java 89KB
SyncStorageEngine.java 89KB
Contacts.java 89KB
DualPivotQuicksort.java 88KB
Formatter.java 87KB
DevicePolicyManagerService.java 87KB
EncryptedPrivateKeyInfoTest.java 86KB
EncryptedPrivateKeyInfoData.java 86KB
WifiP2pService.java 86KB
TouchExplorer.java 84KB
RemoteViews.java 83KB
NetworkPolicyManagerService.java 83KB
ResultSet.java 82KB
BearerData.java 81KB
MediaStore.java 81KB
AccessibilityManagerService.java 81KB
StrictMode.java 81KB
Paint.java 80KB
GridView.java 80KB
Scanner.java 80KB
ContentResolver.java 80KB
AbstractQueuedLongSynchronizer.java 79KB
FragmentManager.java 78KB
GSMPhoneTest.java 77KB
VideoEditorImpl.java 77KB
ThreadPoolExecutor.java 77KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- oez2014-05-21资源可用,学习android代码用
- endif_ck2013-12-25资源可用,学习android代码很有帮助
minjie0128
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功