Lập trình Android 3.0
Số trang: 9
Loại file: doc
Dung lượng: 107.00 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Một trong những cải tiến của Android 3.0 so với các đời Android trước là hỗ trợ trực tiếp cho lập trình viên về việc lập trình xử lý Drag, Drop. Trong bài viết sau đây mình sẽ tạo 1 ứng dụng nho nhỏ demo cho tính năng này.
Nội dung trích xuất từ tài liệu:
Lập trình Android 3.0 Trung tâm Tin học – ĐH KHTN Drag và Drop trên Android 3.0Một trong những cải tiến của Android 3.0 so với các đ ời Android tr ước là h ỗ tr ợ tr ựctiếp cho lập trình viên về việc lập trình xử lý Drag, Drop. Trong bài vi ết sau đây mìnhsẽ tạo 1 ứng dụng nho nhỏ demo cho tính năng này.1/ Các bạn tạo Project như sau:Project name: DragDropDemoBuild Target: Android 3.0Application name: DragDropDemoPackage name: com.dac.drag.drop.demoCreate Activity: MainActivity2/ Trong folder Layout các bạn tạo 2 file lay out đ ể dùng làm fragment cho ứng d ụng : + dropzone.xml : Lập trình Android – http://laptrinhdidong.vn Page 1 Trung tâm Tin học – ĐH KHTN + Palette.xml: Trong file main.xml các bạn sữ dụng 2 file trên: Trung tâm Tin học – ĐH KHTN android:id=@+id/dropzone android:layout_width=0px android:layout_height=match_parent android:layout_weight=2 />3/ Trong folder values/ các bạn tạo file attrs.xml để quy đ ịnh thuoc tính cho 2 nút mìnhsẽ tạo bằng file Java: 4/ Và trong Package chính các bạn tạo các file đ ể vẽ và sử lý các nút (dot) đ ồng th ờicũng sinh ra các Log để theo dõi trong View Debug: + Dot.java:package com.dac.drag.drop.demo;import android.content.ClipData;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.view.DragEvent;import android.view.View;public class Dot extends View implements View.OnDragListener{ private static final int DEFAULT_RADIUS = 20; private static final int DEFAULT_COLOR = Color.WHITE; private static final int SELECTED_COLOR = Color.MAGENTA; protected static final String DOTTAG = DragDot; private Paint mNormalPaint; private Paint mDraggingPaint; private int mColor = DEFAULT_COLOR;Lập trình Android – http://laptrinhdidong.vn Page 3 Trung tâm Tin học – ĐH KHTN private int mRadius = DEFAULT_RADIUS; private boolean inDrag; public Dot(Context context, AttributeSet attrs) { super(context, attrs); TypedArray myAttrs = context.obtainStyledAttributes(attrs, R.styleable.Dot); final int numAttrs = myAttrs.getIndexCount(); for (int i = 0; i < numAttrs; i++) { int attr = myAttrs.getIndex(i); switch (attr) { case R.styleable.Dot_radius: mRadius = myAttrs.getDimensionPixelSize(attr, DEFAULT_RADIUS); break; case R.styleable.Dot_color: mColor = myAttrs.getColor(attr, DEFAULT_COLOR); break; } } myAttrs.recycle(); mNormalPaint = new Paint(); mNormalPaint.setColor(mColor); mNormalPaint.setAntiAlias(true); mDraggingPaint = new Paint(); mDraggingPaint.setColor(SELECTED_COLOR); mDraggingPaint.setAntiAlias(true); setOnLongClickListener(lcListener); setOnDragListener(this); } private static View.OnLongClickListener lcListener = new View.OnLongClickListener() { private boolean mDragInProgress; public boolean onLongClick(View v) { ClipData data = ClipData.newPlainText(DragData,(String)v.getTag()); mDragInProgress = v.startDrag(data, new View.DragShadowBuilder(v), (Object)v, 0); Log.v((String) v.getTag(), starting drag? + mDragInProgress); return true; } }; @Override protected void onMeasure(int widthSpec, int heightSpec) { int size = 2*mRadius + getPaddingLeft() + getPaddingRight();Lập trình Android – http://laptrinhdidong.vn Page 4 Trung tâm Tin học – ĐH KHTN setMeasuredDimension(size, size); } public boolean onDrag(View v, DragEvent event) { String dotTAG = (String) getTag(); if(event.getLocalState() != this) { Log.v(dotTAG, This drag event is not for us); return false; } boolean result = true; int action = event.getAction(); float x = event.getX(); float y = event.getY(); switch(action) { case DragEvent.ACTION_DRAG_STARTED: Log.v(dotTAG, drag started. X: + x + , Y: + y); inDrag = true; break; case DragEvent.ACTION_DRAG_LOCATION: Log.v(dotTAG, drag proceeding... At: + x + , + y); break; case DragEvent.ACTION_DRAG_ENTERED: Log.v(dotTAG, drag entered. At: + x + , + y); break; case DragEvent.ACTION_DRAG_EXITED: Log.v(dotTAG, drag exited. At: + x + , + y); break; case DragEvent.ACTION_DROP: Log.v(dotTAG, drag dropped. At: + x + , + y); result = false; break; case DragEvent.ACTION_DRAG_ENDED: Log.v(dotTAG, drag ended. Success? + event.getResult()); inDrag = false; break; default: Log.v(dotTAG, some other drag action: + action); result = false; break; } return result; } public void draw(Canvas canvas) { ...
Nội dung trích xuất từ tài liệu:
Lập trình Android 3.0 Trung tâm Tin học – ĐH KHTN Drag và Drop trên Android 3.0Một trong những cải tiến của Android 3.0 so với các đ ời Android tr ước là h ỗ tr ợ tr ựctiếp cho lập trình viên về việc lập trình xử lý Drag, Drop. Trong bài vi ết sau đây mìnhsẽ tạo 1 ứng dụng nho nhỏ demo cho tính năng này.1/ Các bạn tạo Project như sau:Project name: DragDropDemoBuild Target: Android 3.0Application name: DragDropDemoPackage name: com.dac.drag.drop.demoCreate Activity: MainActivity2/ Trong folder Layout các bạn tạo 2 file lay out đ ể dùng làm fragment cho ứng d ụng : + dropzone.xml : Lập trình Android – http://laptrinhdidong.vn Page 1 Trung tâm Tin học – ĐH KHTN + Palette.xml: Trong file main.xml các bạn sữ dụng 2 file trên: Trung tâm Tin học – ĐH KHTN android:id=@+id/dropzone android:layout_width=0px android:layout_height=match_parent android:layout_weight=2 />3/ Trong folder values/ các bạn tạo file attrs.xml để quy đ ịnh thuoc tính cho 2 nút mìnhsẽ tạo bằng file Java: 4/ Và trong Package chính các bạn tạo các file đ ể vẽ và sử lý các nút (dot) đ ồng th ờicũng sinh ra các Log để theo dõi trong View Debug: + Dot.java:package com.dac.drag.drop.demo;import android.content.ClipData;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.view.DragEvent;import android.view.View;public class Dot extends View implements View.OnDragListener{ private static final int DEFAULT_RADIUS = 20; private static final int DEFAULT_COLOR = Color.WHITE; private static final int SELECTED_COLOR = Color.MAGENTA; protected static final String DOTTAG = DragDot; private Paint mNormalPaint; private Paint mDraggingPaint; private int mColor = DEFAULT_COLOR;Lập trình Android – http://laptrinhdidong.vn Page 3 Trung tâm Tin học – ĐH KHTN private int mRadius = DEFAULT_RADIUS; private boolean inDrag; public Dot(Context context, AttributeSet attrs) { super(context, attrs); TypedArray myAttrs = context.obtainStyledAttributes(attrs, R.styleable.Dot); final int numAttrs = myAttrs.getIndexCount(); for (int i = 0; i < numAttrs; i++) { int attr = myAttrs.getIndex(i); switch (attr) { case R.styleable.Dot_radius: mRadius = myAttrs.getDimensionPixelSize(attr, DEFAULT_RADIUS); break; case R.styleable.Dot_color: mColor = myAttrs.getColor(attr, DEFAULT_COLOR); break; } } myAttrs.recycle(); mNormalPaint = new Paint(); mNormalPaint.setColor(mColor); mNormalPaint.setAntiAlias(true); mDraggingPaint = new Paint(); mDraggingPaint.setColor(SELECTED_COLOR); mDraggingPaint.setAntiAlias(true); setOnLongClickListener(lcListener); setOnDragListener(this); } private static View.OnLongClickListener lcListener = new View.OnLongClickListener() { private boolean mDragInProgress; public boolean onLongClick(View v) { ClipData data = ClipData.newPlainText(DragData,(String)v.getTag()); mDragInProgress = v.startDrag(data, new View.DragShadowBuilder(v), (Object)v, 0); Log.v((String) v.getTag(), starting drag? + mDragInProgress); return true; } }; @Override protected void onMeasure(int widthSpec, int heightSpec) { int size = 2*mRadius + getPaddingLeft() + getPaddingRight();Lập trình Android – http://laptrinhdidong.vn Page 4 Trung tâm Tin học – ĐH KHTN setMeasuredDimension(size, size); } public boolean onDrag(View v, DragEvent event) { String dotTAG = (String) getTag(); if(event.getLocalState() != this) { Log.v(dotTAG, This drag event is not for us); return false; } boolean result = true; int action = event.getAction(); float x = event.getX(); float y = event.getY(); switch(action) { case DragEvent.ACTION_DRAG_STARTED: Log.v(dotTAG, drag started. X: + x + , Y: + y); inDrag = true; break; case DragEvent.ACTION_DRAG_LOCATION: Log.v(dotTAG, drag proceeding... At: + x + , + y); break; case DragEvent.ACTION_DRAG_ENTERED: Log.v(dotTAG, drag entered. At: + x + , + y); break; case DragEvent.ACTION_DRAG_EXITED: Log.v(dotTAG, drag exited. At: + x + , + y); break; case DragEvent.ACTION_DROP: Log.v(dotTAG, drag dropped. At: + x + , + y); result = false; break; case DragEvent.ACTION_DRAG_ENDED: Log.v(dotTAG, drag ended. Success? + event.getResult()); inDrag = false; break; default: Log.v(dotTAG, some other drag action: + action); result = false; break; } return result; } public void draw(Canvas canvas) { ...
Tìm kiếm theo từ khóa liên quan:
mẹo lập trình lập trình máy tính thủ thuật lập trình Lập trình Android Drag và drop trênTài liệu liên quan:
-
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 240 0 0 -
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 217 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 209 0 0 -
15 trang 200 0 0
-
65 trang 165 0 0
-
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 157 0 0 -
Hướng dẫn lập trình với Android part 4
5 trang 156 0 0 -
69 trang 148 0 0
-
142 trang 130 0 0
-
3 trang 118 0 0