我会尽量做空 - 所以我正在制作这个应用程序,将图像上传到自定义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) 目前我正在为我的应用制作UI.我使用Sliding Up Panel和Sliding 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) 我正在创建一个应用程序,用户可以点击图像的一部分并在角落里获得放大版本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) 我有一个自定义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)
在一开始,但它根本没有帮助.
我正在开发一个应用程序,目前我正在尝试添加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) 目前我正在开发一个应用程序,它将检测照片中的圆圈.我已经设法为此编写了一个代码,但如果我从PC屏幕稍微离开电话,它可能会出现漏报或误报.如何改进结果呢?我的意思是,有很多应用可以检测出小而不清楚的圆圈.
[更新]
我在摆弄值GaussianBlur和HoughCircles.更改
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) 目前我正在制作一个用户将检测绿色的应用程序.我用这张照片进行测试:

我的问题是我无法检测到任何绿色像素.在我使用蓝色之前,一切都很好.现在我无法检测到任何东西,虽然我尝试了不同的组合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获取绿色像素之一的颜色并将其转换RGB为HSV.但它不起作用.它甚至没有检测到我采样的像素.怎么了?提前致谢.
使用Miki的答案:
我使用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.我是否需要它来销售应用程序?因为它在乌克兰不受支持.
因此,在我的应用程序中有一个 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) android ×10
java ×5
opencv ×2
webview ×2
android-pay ×1
android-tabs ×1
bitmap ×1
canvas ×1
colors ×1
geometry ×1
google-play ×1
hsv ×1
rgba ×1