小编Ole*_*sov的帖子

从WebView保存图像

我会尽量做空 - 所以我正在制作这个应用程序,将图像上传到自定义Webview,绘制画布并保存.现在我成功地执行了所有操作,直至保存它.我尝试了很多不同的方法,但都没有.

我保存未经编辑的图像Url:

public void DownloadFromUrl(String fileName) {  //this is the downloader method
    try {
        URL url = new URL(wv2.getUrl()); //you can write here any link
        File file = new File(fileName);
        Canvas canvas = new Canvas();
        wv2.draw(canvas );

        long startTime = System.currentTimeMillis();                   
        Log.d("ImageManager", "download begining");
        Log.d("ImageManager", "download url:" + url);
        Log.d("ImageManager", "downloaded file name:" + fileName);
        URLConnection ucon = url.openConnection();

        InputStream is = ucon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);

        ByteArrayBuffer baf = new ByteArrayBuffer(50);
        int …
Run Code Online (Sandbox Code Playgroud)

java android canvas webview android-bitmap

28
推荐指数
1
解决办法
1653
查看次数

菜单选项卡不响应

目前我正在为我的应用制作UI.我使用Sliding Up PanelSliding Tabs (带有实现说明的教程)功能.两者都很好.我甚至设法在一个项目中实现它们,但这就是问题所在 - 当我触摸它们时(Home应该打开它所代表的页面),Home和Event的选项卡没有响应,但是当我在选项卡之间滑动时它们会发生变化.

在此输入图像描述

这是我的布局代码.这就是问题所在.我敢肯定.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<include
    android:id="@+id/tool_bar"
    layout="@layout/tool_bar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    />

 <com.sothree.slidinguppanel.SlidingUpPanelLayout
    xmlns:sothree="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sliding_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    sothree:umanoPanelHeight="68dp"
    sothree:umanoShadowHeight="4dp"
    sothree:umanoParalaxOffset="100dp"
    sothree:umanoDragView="@+id/dragView">

      <!-- MAIN CONTENT -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="#ff0000">
        <com.ui.test.SlidingTabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:background="@color/ColorPrimary"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:layout_weight="1">
 </android.support.v4.view.ViewPager>
    </RelativeLayout>

      <!-- SLIDING LAYOUT -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#55eeeeee"
        android:orientation="vertical"
        android:clickable="true"
        android:focusable="false"
        android:id="@+id/dragView">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="68dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/name"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="14sp"
                android:gravity="center_vertical"
                android:paddingLeft="10dp"/> …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-viewpager android-tabs

18
推荐指数
1
解决办法
750
查看次数

如何放大/缩放图像的一部分

我正在创建一个应用程序,用户可以点击图像的一部分并在角落里获得放大版本WebView.我设法做了一个Paint可以制作缩放版本,但它显示错误的位置,就像有一些偏移.

我知道这个问题已经被问了很多次并且已经得到了回答,但似乎并没有帮助那些解决方案.

这是我用过的代码:

  @Override
        public boolean onTouchEvent(@NonNull MotionEvent event) {
            zoomPos = new PointF();
            zoomPos.x = event.getX();
            zoomPos.y = event.getY();


        matrix = new Matrix();
        mShader = new BitmapShader(MainActivity.mutableBitmap, TileMode.CLAMP, TileMode.CLAMP);
        mPaint = new Paint();
        mPaint.setShader(mShader);
        outlinePaint = new Paint(Color.BLACK);
        outlinePaint.setStyle(Paint.Style.STROKE);

        int action = event.getAction(); 

        switch (action) { 
        case MotionEvent.ACTION_DOWN:
        case MotionEvent.ACTION_MOVE:
            zooming = true;
            this.invalidate();
            break; 
        case MotionEvent.ACTION_UP: 
            Point1 = true;
            zooming = false;
            this.invalidate();
            break;
        case MotionEvent.ACTION_CANCEL:
            zooming = false;
            this.invalidate();
            break; 

        default: 
            break; 
        } …
Run Code Online (Sandbox Code Playgroud)

android android-canvas

14
推荐指数
1
解决办法
2589
查看次数

从WebView获取位图会导致OutOfMemory崩溃

我有一个自定义WebView,我想获得其内容的位图(包括屏幕外).我使用了这个代码,我从这里得到:

 public static Bitmap getBitmapFromWebviewV2(WebView webView) {
    webView.measure(View.MeasureSpec.makeMeasureSpec(
        View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED),
        View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    webView.layout(0, 0, webView.getMeasuredWidth(),
            webView.getMeasuredHeight());
    webView.setDrawingCacheEnabled(true);
    webView.buildDrawingCache();
    Bitmap bm = Bitmap.createBitmap(webView.getMeasuredWidth(),
            webView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

    Canvas bigcanvas = new Canvas(bm);
    Paint paint = new Paint();
    int iHeight = bm.getHeight();
    bigcanvas.drawBitmap(bm, 0, iHeight, paint);
    webView.draw(bigcanvas);
    return bm;
}
Run Code Online (Sandbox Code Playgroud)

当我放大很多时,它工作正常,在这种情况下我得到OutOfMemory Crash.我用相同的图片(略微缩放并缩放到最大值)测试了它,它的行为与我上面提到的相同.

我试图通过添加来解决这个问题

while(webView.canZoomOut()){
      webView.zoomOut();
}
Run Code Online (Sandbox Code Playgroud)

在一开始,但它根本没有帮助.

android bitmap webview android-canvas

13
推荐指数
1
解决办法
347
查看次数

在片段之间滑动

我正在开发一个应用程序,目前我正在尝试添加ScreenSlide它.我设法使用一个教程来做到这一点,但通常在x页面之间滑动并不是我想要的.

使用下面提供的代码,我可以在5页之间滑动,但页面以直线排列,您不能从第一页直接到第5页,反之亦然.在我的应用程序中,我有4页.当我向左滑动时,我在前2页之间切换,当我向右滑动时,我在最后2页之间切换.在下图中,您可以看到我当前的代码如何切换页面及其下 - 我的目标.

在此输入图像描述

    public class MainActivity extends FragmentActivity {
    private static final int NUM_PAGES = 5;


    private ViewPager mPager;
    private ScreenSlidePageFragment[] pages = new ScreenSlidePageFragment[NUM_PAGES];


    private PagerAdapter mPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen_slide);

        mPager = (ViewPager) findViewById(R.id.pager);
        mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
        mPager.setAdapter(mPagerAdapter);

    }

    @Override
    public void onBackPressed() {
        if (mPager.getCurrentItem() == 0) {
            super.onBackPressed();
        } else {
            mPager.setCurrentItem(mPager.getCurrentItem() - 1);
        } 
    }

    private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
        public ScreenSlidePagerAdapter(FragmentManager …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-fragmentactivity

8
推荐指数
1
解决办法
724
查看次数

Android OpenCV提高检测质量

目前我正在开发一个应用程序,它将检测照片中的圆圈.我已经设法为此编写了一个代码,但如果我从PC屏幕稍微离开电话,它可能会出现漏报或误报.如何改进结果呢?我的意思是,有很多应用可以检测出小而不清楚的圆圈.

[更新]

我在摆弄值GaussianBlurHoughCircles.更改 Imgproc.GaussianBlur(grayMat, grayMat, new Size(9, 9), 2, 2);Imgproc.GaussianBlur(grayMat, grayMat, new Size(9, 9), 9, 9);param1 = 70, param2 = 72;double param1 = 50, param2 = 52;改善的结果,但还不够.

            Mat mat = new Mat(bitmap.getWidth(), bitmap.getHeight(),
                    CvType.CV_8UC1);
            Mat grayMat = new Mat(bitmap.getWidth(), bitmap.getHeight(),
                    CvType.CV_8UC1);

            Utils.bitmapToMat(bitmap, mat);

            int colorChannels = (mat.channels() == 3) ? Imgproc.COLOR_BGR2GRAY
                    : ((mat.channels() == 4) ? Imgproc.COLOR_BGRA2GRAY : 1);

            Imgproc.cvtColor(mat, grayMat, colorChannels);


            Imgproc.GaussianBlur(grayMat, grayMat, new Size(9, 9), 2, 2); …
Run Code Online (Sandbox Code Playgroud)

java geometry android opencv

6
推荐指数
1
解决办法
771
查看次数

OpenCV Android绿色检测

目前我正在制作一个用户将检测绿色的应用程序.我用这张照片进行测试: 在此输入图像描述

我的问题是我无法检测到任何绿色像素.在我使用蓝色之前,一切都很好.现在我无法检测到任何东西,虽然我尝试了不同的组合RGB.我想知道绿色或我的检测范围是否有问题,所以我用油漆制作了一个图像(0, 255, 0)并且它有效.为什么它看不到这个圈子呢?我使用此代码进行检测:

Core.inRange(hsv_image, new Scalar([I change this value]), new Scalar(60, 255, 255), ultimate_blue);
Run Code Online (Sandbox Code Playgroud)

可能是我设置了错误的Range,但我使用Photoshop获取绿色像素之一的颜色并将其转换RGBHSV.但它不起作用.它甚至没有检测到我采样的像素.怎么了?提前致谢.

使用Miki的答案:

在此输入图像描述

android opencv colors hsv rgba

6
推荐指数
1
解决办法
2万
查看次数

Google Play无法销售应用

我使用Unity游戏引擎创建了游戏.它工作得很好.我想将其上传到Google Play,我是Google Play开发者控制台的新用户,实际上是Google Play的新功能.我设法上传了.apk并填写了所有必要的信息.现在它正处于beta测试阶段.这场比赛将是派.这就是我的问题所在.当我(或其他测试人员)试图购买游戏时,会弹出错误.如果我尝试通过PC或手机购买游戏,则错误如下:

An error occurred while getting the status of your purchase.
Run Code Online (Sandbox Code Playgroud)

据我所知,这是由我的Google电子钱包引起的.我在Google电子钱包商店中填写了我的付款设置和付款方式(电汇(我来自乌克兰)),我的商务地址和地址.我在网上搜索,找到类似的问题和解决方案,但找不到.请帮忙.

哦,最近我发现还有一个Google Wallet Merchant for Digital Goods.我是否需要它来销售应用程序?因为它在乌克兰不受支持.

android payment-processing google-play android-pay

5
推荐指数
1
解决办法
1274
查看次数

圆圈形成的按钮

是否有人可以帮助创建这样的布局(我的意思是,我如何选择图像的区域并将其转换为按钮?)?我想要创造的东西

android

3
推荐指数
1
解决办法
2578
查看次数

无法解析符号“ByteArrayBuffer”

因此,在我的应用程序中有一个 WebView,其中包含我想在单击按钮时保存的图像。为此,我使用了以下代码:

import org.apache.http.util.ByteArrayBuffer;

 public void DownloadFromUrl(String fileName) {  //this is the downloader method
    try {
            URL url = new URL(wv2.getUrl()); //you can write here any link
            File file = new File(fileName);
            Canvas canvas = new Canvas();
            wv2.draw(canvas );

            long startTime = System.currentTimeMillis();
            Log.d("ImageManager", "download begining");
            Log.d("ImageManager", "download url:" + url);
            Log.d("ImageManager", "downloaded file name:" + fileName);
            URLConnection ucon = url.openConnection();

            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while …
Run Code Online (Sandbox Code Playgroud)

java android

2
推荐指数
1
解决办法
8019
查看次数