android保存当前view变成bitmap,并保存bitmap到本地

做了一个保存当前view成bitmap图片的项目,但最终报如下错误,找了半天也找不到解决之法。


public static Bitmap getBitmapByView(ScrollView scrollView, HorizontalScrollView hsv) {
int w = 0;
int h = 0;
Bitmap bitmap = null;
// 获取scrollview实际高度
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();
scrollView.getChildAt(i).setBackgroundColor(Color.parseColor("#ffffff"));
}

    // 获取HorizontalScrollView实际宽度
    for (int i = 0; i < hsv.getChildCount(); i++) {
        w += hsv.getChildAt(i).getWidth();
        hsv.getChildAt(i).setBackgroundColor(Color.parseColor("#ffffff"));
    }
    // 创建对应大小的bitmap
    bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);
    final Canvas canvas = new Canvas(bitmap);
    scrollView.draw(canvas);
    hsv.draw(canvas);
    return bitmap;
}

/**
 * 压缩图片
 *
 * @param image
 * @return
 */
public static Bitmap compressImage(Bitmap image) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    // 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
    image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    // 把压缩后的数据baos存放到ByteArrayInputStream中
    ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
    // 把ByteArrayInputStream数据生成图片
    Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
    return bitmap;
}

/**
 * 保存到sdcard
 *
 * @param b
 * @return
 */
public static String savePic(Bitmap b) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss",
            Locale.US);
    File outfile = new File("/sdcard/image");
    // 如果文件不存在,则创建一个新文件
    if (!outfile.isDirectory()) {
        try {
            outfile.mkdir();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    String fname = outfile + "/" + sdf.format(new Date()) + ".png";
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(fname);
        if (null != fos) {
            b.compress(Bitmap.CompressFormat.PNG, 90, fos);
            fos.flush();
            fos.close();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return fname;
}


    ---------------------------------------------
    09-28 14:31:11.181 23514-23514/com.bonc.ms.main I/ViewRootImpl: finishMotionEvent: handled = true stage=10: View Post IME stage,inputElapseTime=0 eventTime = 867860380 downTime = 867860380 title= com.bonc.ms.main/com.bonc.ms.main.develop.FourGDevelopActivity

09-28 14:31:11.287 23514-23514/com.bonc.ms.main V/SettingsInterface: invalidate [system]: current 4765 != cached 0
09-28 14:31:11.289 23514-23514/com.bonc.ms.main D/ActivityThread: holder:android.app.IActivityManager$ContentProviderHolder@30ba67e, holder.provider:android.content.ContentProviderProxy@c2477df
09-28 14:31:11.398 23514-23520/com.bonc.ms.main W/art: Suspending all threads took: 58.163ms
09-28 14:31:12.773 23514-23724/com.bonc.ms.main D/skia: jpeg_decoder mode 1, colorType 4, w 7907, h 4586, sample 1, bsLength 0!!
09-28 14:31:13.227 23514-23724/com.bonc.ms.main D/skia: jpeg_decoder finish successfully, L:1934!!!
09-28 14:31:13.229 23514-23724/com.bonc.ms.main W/System.err: java.io.FileNotFoundException: /sdcard/image/2016-09-28_14-31-13.png: open failed: ENOENT (No such file or directory)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at libcore.io.IoBridge.open(IoBridge.java:487)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at java.io.FileOutputStream.(FileOutputStream.java:87)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at java.io.FileOutputStream.(FileOutputStream.java:127)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at java.io.FileOutputStream.(FileOutputStream.java:116)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at com.bonc.ms.tools.ScreenShot.savePic(ScreenShot.java:110)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at com.bonc.ms.main.develop.FourGDevelopActivity$3.run(FourGDevelopActivity.java:153)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: at java.lang.Thread.run(Thread.java:818)
09-28 14:31:13.231 23514-23724/com.bonc.ms.main W/System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
09-28 14:31:13.232 23514-23724/com.bonc.ms.main W/System.err: at libcore.io.Posix.open(Native Method)
09-28 14:31:13.232 23514-23724/com.bonc.ms.main W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
09-28 14:31:13.232 23514-23724/com.bonc.ms.main W/System.err: at libcore.io.IoBridge.open(IoBridge.java:473)
09-28 14:31:13.232 23514-23724/com.bonc.ms.main W/System.err: ... 6 more

1个回答

问题在:FileNotFoundException: /sdcard/image/2016-09-28_14-31-13.png: open failed: ENOENT (No such file or directory)
在保存到SD卡的方法中,if判断文件路径是否存在这里应该有问题,应该是if(!outFile.exists())
我以前写过类似方法:
private void SavePicture(Bitmap bitmap) {
try {
String sdcard = Environment.getExternalStorageDirectory().toString();

        File file = new File(sdcard + "/oa/myPic");
        if (!file.exists()) {
            file.mkdirs();
        }

        File imageFile = new File(file.getAbsolutePath(), new Date().getTime() + ".jpg");
        FileOutputStream outStream = null;
        outStream = new FileOutputStream(imageFile);

        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        outStream.flush();
        outStream.close();
        Toast.makeText(MessageActivity.this, "该图片保存到/oa/myPic", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android –压缩 bitmap 再保存到 SDCARD
我想实现的是:拍照片,然后压缩成 png(保持原来的尺寸),然后保存到sdCard中,我为什么要这样做呢,因为我需要重新压缩,然后用Base64编码,我就可以把它发送到一个服务器中。 现在的问题是: 1.文件太大 2.内存耗尽 3.不确定这样做对不对 @Override public void onClick(View button) { switch (button.getId()) { case R.id.cameraButton: Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/test.png"))); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); break; case R.id.galleryButton: sendToDatabase(); break; } } // Camera on activity for result - save it as a bmp and place in imageview protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_PIC_REQUEST) { // do something } if (resultCode == Activity.RESULT_OK) { Log.d(TAG, "result ok"); picture = BitmapFactory.decodeFile("/sdcard/test.png"); // Create string to place it in sd card String extStorageDirectory = Environment .getExternalStorageDirectory().toString(); //create output stream OutputStream outputStream = null; //create file File file = new File(extStorageDirectory, "test.png"); try { outputStream = new FileOutputStream(file); picture.compress(Bitmap.CompressFormat.PNG, 80, outputStream); //picture.recycle(); outputStream.flush(); outputStream.close(); } catch (IOException e){ Log.d(TAG, "ERROR"); } imageView.setImageBitmap(picture); } } public void sendToDatabase() { InputStream inputStream = null; //get the picture from location picture = BitmapFactory.decodeFile("/sdcard/test.png"); // CONVERT: ByteArrayOutputStream outStream = new ByteArrayOutputStream(); Boolean didItWork = picture.compress(Bitmap.CompressFormat.PNG, 50, outStream); picture.recycle(); if (didItWork = true) { Log.d(TAG, "compression worked"); } Log.d(TAG, "AFTER. Height: " + picture.getHeight() + " Width: " + picture.getWidth()); final byte[] ba = outStream.toByteArray(); try { outStream.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
Android求问,在使用Xfermode的情况下将View保存为Bitmap
![图片说明](https://img-ask.csdn.net/upload/201607/26/1469521243_95764.png) 新人求问,我想通过xfermode实现不规则的bitmap图形,但是发现一个问题,如图,上面那张是通过poterduffxfermode将一张图片的左下角用另一张图片的上面的局部填充的。 上图是我的自定义View,下图是ImageView 但是我发现将这个自定义View通过 ``` int width = viewWidth; int height = viewHeight; Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap2); mImg1.draw(canvas);mImg2.setImageBitmap(bitmap2); ``` 和 ``` mImg1.setDrawingCacheEnabled(true); Bitmap drawingCache = mImg1.getDrawingCache(); mImg1.setDrawingCacheEnabled(false); mImg2.setImageBitmap(drawingCache); ``` 两种方法得到的Bitmap,给下面那个ImageView设置图片时都无法获得poterduffxfermode带来的效果。 第一个图中的分割的白线是直接在onDraw画的。 求解这是为什么,以及如何解决。 在网上搜索了很久一直没找到解决方法。
recycled bitmap android
android代码中的问题,注不是imagview的回收问题是textview的回收问题 java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@2e09f030 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.graphics.Canvas.drawBitmap(Canvas.java:1416) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:539) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.widget.TextView.onDraw(TextView.java:5414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15305) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15214) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3205) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15308) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15214) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3205) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15212) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3205) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15212) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3205) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15212) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3414) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3205) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.View.draw(View.java:15308) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.widget.FrameLayout.draw(FrameLayout.java:598) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2674) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2779) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl.draw(ViewRootImpl.java:2685) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2425) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2048) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1105) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6204) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:799) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:612) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.Choreographer.doFrame(Choreographer.java:581) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.view.Choreographer$FrameHandler.handleMessage(Choreographer.java:714) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.os.Looper.loop(Looper.java:135) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5669) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at java.lang.reflect.Method.invoke(Native Method) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at java.lang.reflect.Method.invoke(Method.java:372) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 08-29 15:43:52.889 26558-26558/com.BDB.bdbconsumer W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
【Android】View如何实现多个监听以及如何设置Bitmap在视图中的位置?
自定义了一个View,在onTouch方法里执行的是画笔涂鸦的操作,并且在这个View里面绘制了一个Bitmap。现在这个View还需要监听手势实现Bitmap两个手指缩放、拖动的操作。 1. 请问如何实现多个监听,或者两个监听该如何切换? 2. 请问如何设置Bitmap在View中的位置?
怎样将bitmap转view ,有没有什么办法呀.
我想将bitmap格式转成view 是为了能够让bitmap格式的图片设置监听事件,或者自己设置一个监听器
Android:root view (带 ActionBar)的 snapshot
我通过 content view 快速获取 activities 的位图,并且绘制出来: View view = activity.findViewById(android.R.id.content) Bitmap bitmap = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Config.ARGB_8888 ); view.draw(new Canvas(bitmap)); 现在我使用一个 ActionBar,它不是嵌套在 content view 中。怎样才能获得真正的根视图? 或者使用action bar 快速获取一个图片?
Android中点击ImageView 如何知道 点击坐标是否在控件中的Bitmap上
如题,imageview的onTouchEvent事件中获得点击坐标,但是view中的bitma并不是和imageview等大小的,而且用矩阵将Bitmap动态旋转、缩放了,想要知道点击的坐标是否位于bitmap上。目前的解决方案是,获取坐标点的Imageview的颜色值,看那是否登录0,但是Imageview点击获取颜色值有点卡,体验不好。我想应该可以用数学的方法来解决这个问题的。希望大神们帮助一下,或者提示方法。
android自定义view插入xml
自定义View代码如下。我希望把这个view插入到一个layout的xml的文件中。一直出错,错误类型是error inflating class。应该是这个View出的问题 package com.example.browserstation; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; public class touchmove extends View{ private int start_x; private final int width = MainActivity.screenWidth; private int height ; private int backwidth; private int ori_x = 0; //点击屏幕原始坐标,当前坐标和位移数据 private int ori_y = 0; private int cur_x = 0; private int cur_y = 0; private int del_x = 0; private int del_y = 0; private Bitmap bmp_back; private Bitmap bmp_bg1; private Bitmap bmp_draw0; private Bitmap bmp_draw1; private Boolean flag_move = false; private Boolean flag_temp = false; private int index = 0; private Context c; private TimerTask ttsk = new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub if(flag_move)h.sendEmptyMessage(0x888); } }; final Handler h = new Handler(){ //处理信息,背景移动 public void handleMessage(Message msg){ if(msg.what == 0x888){ if(start_x < (backwidth - width-2)){ flag_temp = false; start_x += 3; }else if(start_x < backwidth - 3){ start_x += 3; flag_temp = true; }else{ if(index>0){ backwidth = bmp_back.getWidth(); index = 0; }else { backwidth = bmp_bg1.getWidth(); index += 1; } start_x = 0; flag_temp = false; flag_move = false; } } invalidate(); } }; private Timer timer; public touchmove(Context context) { super(context); c = context; bmp_back = BitmapFactory.decodeResource(getResources(), R.drawable.mainback); bmp_back = new zoompicture(bmp_back,bmp_back.getWidth(),MainActivity.screenHeight).getOutbtm(); bmp_bg1 = BitmapFactory.decodeResource(getResources(), R.drawable.bg1); bmp_bg1 = new zoompicture(bmp_bg1,bmp_bg1.getWidth(),MainActivity.screenHeight).getOutbtm(); start_x = 0; backwidth = bmp_back.getWidth(); height = MainActivity.screenHeight; bmp_draw0 = bmp_back; bmp_draw1 = bmp_back; timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub if(flag_move){ h.sendEmptyMessage(0x888); } } }, 0, 100); } public touchmove(Context context, AttributeSet attrs) { super(context,attrs); // TODO Auto-generated constructor stub c = context; bmp_back = BitmapFactory.decodeResource(getResources(), R.drawable.mainback); bmp_back = new zoompicture(bmp_back,bmp_back.getWidth(),MainActivity.screenHeight).getOutbtm(); bmp_bg1 = BitmapFactory.decodeResource(getResources(), R.drawable.bg1); bmp_bg1 = new zoompicture(bmp_bg1,bmp_bg1.getWidth(),MainActivity.screenHeight).getOutbtm(); start_x = 0; backwidth = bmp_back.getWidth(); height = MainActivity.screenHeight; bmp_draw0 = bmp_back; bmp_draw1 = bmp_back; timer.schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub if(flag_move){ h.sendEmptyMessage(0x888); } } }, 0, 100); } public touchmove(Context context, AttributeSet attrs, int delStyle) { super(context,attrs,delStyle); // TODO Auto-generated constructor stub c = context; bmp_back = BitmapFactory.decodeResource(getResources(), R.drawable.mainback); bmp_back = new zoompicture(bmp_back,bmp_back.getWidth(),MainActivity.screenHeight).getOutbtm(); bmp_bg1 = BitmapFactory.decodeResource(getResources(), R.drawable.bg1); bmp_bg1 = new zoompicture(bmp_bg1,bmp_bg1.getWidth(),MainActivity.screenHeight).getOutbtm(); start_x = 0; backwidth = bmp_back.getWidth(); height = MainActivity.screenHeight; bmp_draw0 = bmp_back; bmp_draw1 = bmp_back; timer.schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub if(flag_move){ h.sendEmptyMessage(0x888); } } }, 0, 100); } /* (non-Javadoc) * @see android.view.View#onTouchEvent(android.view.MotionEvent) */ @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch(action){ case MotionEvent.ACTION_DOWN:ori_x = (int)event.getX();ori_y = (int)event.getY(); Log.v("ori_x :",""+ori_x); return true; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP:cur_x = (int)event.getX();cur_y = (int)event.getY(); del_x = cur_x - ori_x;del_y = cur_y - ori_y; if(del_x < -50){ flag_move = true; };Log.v("delx: ",""+del_x); break; } // TODO Auto-generated method stub return super.onTouchEvent(event); } /* (non-Javadoc) * @see android.view.View#onDraw(android.graphics.Canvas) */ @Override protected void onDraw(Canvas canvas) { if(!flag_temp){ switch(index){ case 0:bmp_draw0 = Bitmap.createBitmap(bmp_back,start_x,0,width,height); bmp_draw1 = bmp_draw0; canvas.drawBitmap(bmp_draw0,0,0,new Paint()); break; case 1:bmp_draw0 = Bitmap.createBitmap(bmp_bg1,start_x,0,width,height); bmp_draw1 = bmp_draw0; canvas.drawBitmap(bmp_draw0,0,0,new Paint()); break; } }else{ switch(index){ case 0:bmp_draw0 = Bitmap.createBitmap(bmp_back,start_x,0,bmp_back.getWidth()-start_x,height); bmp_draw1 = Bitmap.createBitmap(bmp_bg1,0,0,start_x+width-backwidth,height); canvas.drawBitmap(bmp_draw0,0,0,new Paint()); canvas.drawBitmap(bmp_draw1, width-bmp_draw1.getWidth(),0, new Paint()); break; case 1:bmp_draw0 = Bitmap.createBitmap(bmp_bg1,start_x,0,bmp_bg1.getWidth()-start_x,height); bmp_draw1 = Bitmap.createBitmap(bmp_back,0,0,start_x+width-backwidth,height); canvas.drawBitmap(bmp_draw0,0,0,new Paint()); canvas.drawBitmap(bmp_draw1, width-bmp_draw1.getWidth(),0, new Paint()); break; } } Log.v("v","draw1:"+bmp_draw0.getWidth()+"draw2:"+bmp_draw1.getWidth()+" strat_x"+start_x); // TODO Auto-generated method stub super.onDraw(canvas); } }
android保存好的图片加载显示
最近做了一个期末画图小项目,在画板上画好的位图以png格式保存在一个文件夹中,现在我 希望把保存好的图片在主页显示出来,具体思路如下:建立数据库,保存图片创建时间和图片 路径,加载的时候,通过数据库查询把路径取出,利用Bitmap bm = BitmapFactory.decodeFile(imagePath);将图片转化为bitmap,然后自定义一个适配器,在适配器中通过ImageView image=(ImageView) view.findViewById(R.id.iv_diary_bitmap); image.setImageBitmap(i.getBm());将图片显示在主页面,可显示的是空页面,如图: ![图片说明](https://img-ask.csdn.net/upload/201606/28/1467044290_789160.png) 各位大神,问题出在哪啊,请帮帮忙,谢谢
android 7.0以上系统把webview内容生成长图异常
Android开发 想把webview的内容生成长图保存本地,7.0以上系统只能截取第一屏的内容生成长图,超出第一屏的显示 空白,7.0以下的正常生成,生成代码如下,哪位大神能指点一二吗 ,谢谢了,代码: public Bitmap viewShot(final View view) { if (view == null) return null; view.setDrawingCacheEnabled(true); view.buildDrawingCache(); int measureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); view.measure(measureSpec, measureSpec); if (view.getMeasuredWidth() <= 0 || view.getMeasuredHeight() <= 0) { return null; } Bitmap bm; try { bm = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); } catch (OutOfMemoryError e) { System.gc(); try { bm = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); } catch (OutOfMemoryError ee) { return null; } } Canvas bigCanvas = new Canvas(bm); Paint paint = new Paint(); int iHeight = bm.getHeight(); bigCanvas.drawBitmap(bm, 0, iHeight, paint); view.draw(bigCanvas); return bm; }
Android 自定义View 中如何 再new 一个Canvas
bitmapCanvas = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888); canvas2 = new Canvas(bitmapCanvas); odDraw里 canvas2.drawBitmap(bitmapCanvas, 0, 0, mPaint); canvas2.drawLine(0, 0, 200, 200, paint); 这样写对么??我的没有效果~
ImageView bitmap size exceeds VM budget
我在一个activity中为一个ImageView设置了从asset中读取出来的图片,ImageView..setImageDrawable(Drawable.createFromStream(getResources() .getAssets().open("xxx.png"), "")); 图片一般200-500k,第一次显示正常,在模拟器上backpress再进入这个activity时,上一句会出现异常bitmap size exceeds VM budget。 ImageView我声明为 成员变量。 在onDestroyView时,我从根view遍历,把所有view的background drawable调用了setCallback(null). ImageView获取了getDrawable()调用了setCallback(null),仍然会出现异常。 如果我在获取的drawable为BitmapDrawable时调用recycle(),再次进入又会出现try to use recycled bitmap。
Android 自定义View点击事件
# 给自定义小图标(箭头所指)添加OnclickListener(); # 结果 # 只要点击屏幕就会响应了 刚接触Android不久,不知道哪里的问题,求大神指点。 ![图片说明](https://img-ask.csdn.net/upload/201511/05/1446715229_242966.png) ``` public class Map extends Fragment implements OnClickListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View root = inflater.inflate(R.layout.map, container, false); FrameLayout frameLayout = (FrameLayout) root .findViewById(R.id.maplayout); /** * 新建一个图标 * * @author prohan * @param Context * context int x ,int y 添加的点的左上角位置 int id 设置节点ID */ final Myview myview = new Myview(this.getActivity(), 830, 880); myview.setOnClickListener(this); myview.setId(10); frameLayout.addView(myview); return root; } public void onAttach(Activity activity) { super.onAttach(activity); } class Myview extends View { public int bitmapx; public int bitmapy; public Myview(Context context, int x, int y) { super(context); this.bitmapx = x; this.bitmapy = y; } @Override protected void onDraw(Canvas canvas) { Paint point = new Paint(); point.setAlpha(150); Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.point); canvas.drawBitmap(bitmap, null, new Rect(bitmapx, bitmapy, bitmapx + 60, bitmapy + 100), point); // canvas.drawRect(0, 0, getWidth(), getHeight(), mPaint); // canvas.drawBitmap(bitmap, bitmapx, bitmapy, point); } } // Onclick中的方法 private void alertmessage() { AlertDialog alert = new AlertDialog.Builder(this.getActivity()) .create(); alert.setIcon(R.drawable.ic_launcher);// 设置对话框的图标 alert.setTitle("当前站点信息:"); alert.setMessage("XXXXXXXXXXXXXXXX"); alert.show(); } @Override public void onClick(View v) { switch (v.getId()) { case 10: Toast.makeText(getActivity(), "#" + v.getId() + "#" + "8号楼监测站", Toast.LENGTH_SHORT).show(); alertmessage(); break; default: break; } } } ``` # 如果能告诉我如何能让myview跳动起来就最好啦
HelloChart框架如何避免OOM
java.lang.OutOfMemoryError at android.graphics.Bitmap.nativeCreate(Native Method) at android.graphics.Bitmap.createBitmap(Bitmap.java:689) at android.graphics.Bitmap.createBitmap(Bitmap.java:666) at android.graphics.Bitmap.createBitmap(Bitmap.java:633) at lecho.lib.hellocharts.renderer.LineChartRenderer.onChartSizeChanged(LineChartRenderer.java:72) at lecho.lib.hellocharts.view.AbstractChartView.onSizeChanged(AbstractChartView.java:78) at android.view.View.setFrame(View.java:14124) at android.view.View.layout(View.java:14036) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021)
关关于android 微信sdk 分享 图片 到 朋友圈 的问题
sceneSwitch.setDrawingCacheEnabled(true);//sceneSwitch是一个自定义的VIew Bitmap bmp = Bitmap.createBitmap(sceneSwitch.getDrawingCache());//用这种方法就没办法跳出分享页面 //Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);//用这个bmp就可以跳出分享界面 WXImageObject imgObj = new WXImageObject(bmp); WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true); bmp.recycle(); msg.thumbData = Util.bmpToByteArray(thumbBmp, true); // 设置缩略图 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("img"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline;//判断是否发送到朋友圈 api.sendReq(req); ``` ``` 用微信官方的做的,新手求指导:从VIew获得图片没法跳出分享界面
获取res文件夹中的jpg文件ID
在res文件夹中有自动生成的drawable-hdpi文件夹, 其中有一个jpeg.文件。我先要获取它的ID时参考资料上写"R.drawable.myimage" ,我用完后报错误: **"cannot be resolved to a variable"** 代码: import android.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.View; public class MyCanvas extends View{ Bitmap bmp; public MyCanvas(Context context) { super(context); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inJustDecodeBounds = true; bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.85849); } } jpg文件的名臣是85849
java.lang.IllegalArgumentException: x 一定要小于 bitmap.width()
获取屏幕截图,用裁剪图片创建位图的时候出现了错误, 先看看我的代码吧: View v1 = mKittyBGLayer.getRootView(); v1.setDrawingCacheEnabled(true); Bitmap source = v1.getDrawingCache(); int width = source.getWidth(); int height = source.getHeight(); System.out.println("vListView : -"+vListView.getWidth()); System.out.println("hListView : -"+hListView.getHeight()); System.out.println("Width : -"+width); System.out.println("Height : -"+height); bitmap = Bitmap.createBitmap(source, vListView.getWidth(), 0, width, height - hListView.getHeight()); 日志也看一下: 11-01 11:00:31.419: I/System.out(1658): vListView :- 60 11-01 11:00:31.429: I/System.out(1658): hListView :- 60 11-01 11:00:31.429: I/System.out(1658): Width :- 480 11-01 11:00:31.429: I/System.out(1658): Height :- 320 11-01 11:00:31.429: D/AndroidRuntime(1658): Shutting down VM 11-01 11:00:31.429: W/dalvikvm(1658): threadid=1: thread exiting with uncaught exception (group=0x40018560) 11-01 11:00:31.429: E/AndroidRuntime(1658): FATAL EXCEPTION: main 11-01 11:00:31.429: E/AndroidRuntime(1658): java.lang.IllegalArgumentException: x + width must be <= bitmap.width() 11-01 11:00:31.429: E/AndroidRuntime(1658): at android.graphics.Bitmap.createBitmap(Bitmap.java:410) 11-01 11:00:31.429: E/AndroidRuntime(1658): at android.graphics.Bitmap.createBitmap(Bitmap.java:383) 11-01 11:00:31.429: E/AndroidRuntime(1658): at com.appsehs.android.CUTECRAZYKITTENDRESSUPGAME.PhotoSortrActivity.takeScreenShot(PhotoSortrActivity.java:247) 11-01 11:00:31.429: E/AndroidRuntime(1658): at com.appsehs.android.CUTECRAZYKITTENDRESSUPGAME.PhotoSortrActivity.onOptionsItemSelected(PhotoSortrActivity.java:274) 11-01 11:00:31.429: E/AndroidRuntime(1658): at android.app.Activity.onMenuItemSelected(Activity.java:2205) 程序里面`x < bitmap.getWidth`也就是`60 < 480` 但是报错了
Android 自定义View 参数
这是我自定义View 的源码: public class MyView extends View { private float px; private float py; private int flag ; private Bitmap map; public MyView(Context context,float p_x,float p_y,int flag) { super(context); this.px=p_x; this.py=p_y; this.flag=flag; System.out.println(px); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); System.out.println("2"); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(flag==1){ map=BitmapFactory.decodeResource(getResources(), R.drawable.star_circle_mo); } else{ map=BitmapFactory.decodeResource(getResources(), R.drawable.star_circle_mo1); } System.out.println("p_x"+px); System.out.println("p_y"+py); canvas.drawBitmap(map, 45.0f, 180.0f, null); } } 在这里面调用它: public class PicBuyDemo extends Activity { private ImageView iv; private MyView myView; private MyView ball; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); iv=(ImageView)findViewById(R.id.iv); ball=(MyView)findViewById(R.id.myView_01); iv.setBackgroundResource(R.drawable.j1); myView =new MyView(this,80.0f,70.0f,1); iv.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { ball.setVisibility(View.VISIBLE); return false; } }); } } 布局文件: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/ll" > <ImageView android:id="@+id/iv" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <com.cyc.MyView android:id="@+id/myView_01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" > </com.cyc.MyView> </FrameLayout> 为什么在自定义View的ondraw()方法里px,py总是为0.0,flag=0
Could not execute method for android :onClicked
最近在学android的camera,在拍照按钮的点击事件中做了如下参数设置: ``` public void capture(View view){ if(mCamera!=null){ WindowManager manager= (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display=manager.getDefaultDisplay(); Log.i("capture",display.getWidth()+" "+display.getHeight()); Camera.Parameters parameters=mCamera.getParameters(); //设置拍照格式 parameters.setPictureFormat(PixelFormat.YCbCr_422_SP); //设置拍照大小 parameters.setPictureSize(213,350); //设置自动对焦 parameters.setFlashMode(Camera.Parameters.FOCUS_MODE_AUTO); mCamera.setParameters(parameters); mCamera.autoFocus(new Camera.AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { mCamera.takePicture(null,null,mPictureCallback); } }); } } ``` 点击拍照按钮的时候程序崩溃了,出现如下的日志信息: ``` Process: com.example.vampire.facelearning, PID: 14489 java.lang.IllegalStateException: Could not execute method for android:onClick at android.view.View$DeclaredOnClickListener.onClick(View.java:4461) at android.view.View.performClick(View.java:5207) at android.view.View$PerformClick.run(View.java:21177) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5432) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4456) at android.view.View.performClick(View.java:5207)  at android.view.View$PerformClick.run(View.java:21177)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5432)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)  Caused by: java.lang.RuntimeException: setParameters failed at android.hardware.Camera.native_setParameters(Native Method) at android.hardware.Camera.setParameters(Camera.java:2003) at com.example.vampire.facelearning.CustomCamera.capture(CustomCamera.java:85) at java.lang.reflect.Method.invoke(Native Method)  at android.view.View$DeclaredOnClickListener.onClick(View.java:4456)  at android.view.View.performClick(View.java:5207)  at android.view.View$PerformClick.run(View.java:21177)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5432)  at java.lang.reflect.Method.invoke(Native Method)  ``` 我把mCamera.setParameters(parameters);注析掉后程序就可以进行拍照了,但遇到了另一个问题。拍照获取的图片尺寸非常小:![图片说明](https://img-ask.csdn.net/upload/201604/02/1459603192_651468.png) 这是onPictureToken方法的实现方法: ``` private Camera.PictureCallback mPictureCallback=new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { //将数据写入SD卡的temp.png文件当中 File tempFile=new File("/sdcard/temp.png"); try { FileOutputStream fileOutputStream=new FileOutputStream(tempFile); fileOutputStream.write(data); fileOutputStream.close(); Intent intent=new Intent(CustomCamera.this,ResultAty.class); intent.putExtra("picPath",tempFile.getAbsolutePath()); startActivity(intent); CustomCamera.this.finish(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; ``` 跳转到另一个activity来进行显示图片: ``` String path=getIntent().getStringExtra("picPath"); ImageView imageView= (ImageView) findViewById(R.id.pic); //对图像的显示角度进行调整 try { FileInputStream fis=new FileInputStream(path); //把图像转换成字节流 Bitmap bitmap=BitmapFactory.decodeStream(fis); Matrix matrix=new Matrix(); matrix.setRotate(90); //调整角度 bitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); imageView.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } } ``` 麻烦各位大神给个提示,我自己debug了很久都没有找出问题所在,谢谢!
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问