package com.xinwu.app;
import java.util.Collections;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.OnGestureListener;
import android.view.View.OnTouchListener;
public class MyView extends View implements OnGestureListener,OnTouchListener{
private Context context;
private PackageManager mPackageManager;
private List<ResolveInfo> mAllApps;
private Paint paint;
private Bitmap bitmap;
private int size = 15;
private GestureDetector detector;
private boolean isEnd;
public MyView(Context context) {
super(context);
this.context = context;
paint = new Paint();
this.setOnTouchListener(this);
//必须加入长接触监听
this.setLongClickable(true);
detector = new GestureDetector(context, this);
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
//this.bindAllApps();
}
float y = 10;
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
paint.setColor(Color.RED);
if(!isEnd){
for(int i = 0;i<size ;i++){
float drawY = y+bitmap.getHeight()*i;
canvas.drawBitmap(bitmap, 10, drawY, paint);
canvas.drawText("text"+i, bitmap.getWidth()+20, drawY+40, paint);
if(drawY<480&&i==size-1){
System.out.println("===================="+drawY);
isEnd = true;
}
}
}else{
for(int i = 0;i<size ;i++){
float drawY = y*(i+1)/10+bitmap.getHeight()*i;
canvas.drawBitmap(bitmap, 10, y*(i+1)/10+bitmap.getHeight()*i, paint);
canvas.drawText("text"+i, bitmap.getWidth()+20, drawY+40, paint);
if(drawY>480&&i==size-1){
System.out.println("===================="+drawY);
isEnd = false;
}
}
}
super.onDraw(canvas);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
// y = 10;
if(isEnd){
y = 10;
}
this.invalidate();
}
return detector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
if(e2.getY()>e1.getY()){
y += (e2.getY() - e1.getY())/50;
this.invalidate();
System.out.println("--------------------");
}else if(e2.getY()<e1.getY()){
y += (e2.getY() - e1.getY())/50;
System.out.println("+++++++++++++++++++++");
this.invalidate();
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return false;
}
private void onDrawItem(Canvas canvas){
ResolveInfo res = mAllApps.get(0);
Drawable drawable = res.loadIcon(mPackageManager);
// 取 drawable 的长宽
int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
// 取 drawable 的颜色格式
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565;
// 建立对应 bitmap
Bitmap bitmap = Bitmap.createBitmap(w, h, config);
canvas.drawBitmap(bitmap, 10, 10, paint);
canvas.drawText(res.loadLabel(mPackageManager).toString(), 10f, 100f, paint);
System.out.println("---"+res.loadLabel(mPackageManager).toString());
}
private void bindAllApps(){
mPackageManager = context.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);
Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
AllApp.rar (30个子文件)
AllApp
.project 842B
project.properties 360B
proguard.cfg 1KB
src
com
xinwu
app
AllAppActivity.java 3KB
MyView.java 5KB
AndroidManifest.xml 732B
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
layout
gridview.xml 587B
main.xml 568B
values
strings.xml 178B
assets
gen
com
xinwu
app
R.java 905B
.classpath 364B
bin
resources.ap_ 11KB
classes
com
xinwu
app
R$layout.class 411B
R$drawable.class 392B
R$attr.class 325B
AllAppActivity$GridItemAdapter.class 3KB
AllAppActivity$1.class 2KB
AllAppActivity.class 3KB
R$id.class 439B
R.class 496B
R$string.class 412B
MyView.class 6KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
AllApp.apk 18KB
classes.dex 10KB
共 30 条
- 1
「已注销」
- 粉丝: 9
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页