我试图在图像上绘制并保存图像.现在我可以成功地在图像上绘制.但我面临两个问题.当我在图像上绘制时,它也允许绘制出图像的一面.我只想在图像上画画.第二个问题是当我保存它被触发的图像时.我想将图像保存为原始大小.请帮我解决我的问题.
在这里,我发布我的整个代码.
public class DrawingPaint extends View implements View.OnTouchListener {
private Canvas mCanvas;
private Path mPath;
private Paint mPaint, mBitmapPaint;
public ArrayList<PathPoints> paths = new ArrayList<PathPoints>();
private ArrayList<PathPoints> undonePaths = new ArrayList<PathPoints>();
private Bitmap mBitmap;
private int color;
private int x, y;
private String textToDraw = null;
private boolean isTextModeOn = false;
int lastColor = 0xFFFF0000;
static final float STROKE_WIDTH = 15f;
public DrawingPaint(Context context/*, int color*/) {
super(context);
//this.color = color;
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
/*mPaint …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用JobService.它运作良好.但有时服务停止了.它不会再次重启.因此,如果没有运行,我正试图策划JobService.但我不知道如何检查JobService是否已经运行.请让我知道如何检查JobService是否正在运行.
我的职业服务班:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class JobService extends android.app.job.JobService {
@Override
public boolean onStartJob(JobParameters params) {
if (NetworkHandler.getInstance().isNetworkAvailable()) {
TaskHandler.getInstance().getTaskListFromServer(PreferenceManagerForPlannedRoute.getInstance().getLastSyncTime(), PreferenceManagerForPlannedRoute.getInstance().getInProgressMoveTask());
NotificationUtils.getInstance().CreateNotification();
Logger.d("Scheduler", "Working!!");
} else {
Logger.d("Network", "not available");
}
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
Logger.d("onStopJob", "Stopped");
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
我的Util类:
public class JobSchedulerUtils {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public static void scheduleJob(Context context) {
ComponentName serviceComponent = new ComponentName(context, JobService.class);
JobInfo.Builder builder = new JobInfo.Builder(0, serviceComponent);
builder.setRequiresDeviceIdle(false);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
builder.setPeriodic(5000);
builder.setPersisted(true);
JobScheduler jobScheduler = …Run Code Online (Sandbox Code Playgroud) 我正在尝试启用振铃器正常模式并以编程方式增加音量.
AudioManager mobilemode = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
// int streamMaxVolume = mobilemode.getStreamMaxVolume(AudioManager.STREAM_RING);
switch (mobilemode.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i("MyApp","Silent mode");
mobilemode.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mobilemode.setStreamVolume (AudioManager.STREAM_MUSIC,mobilemode.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);
break;
case AudioManager.RINGER_MODE_VIBRATE:
Log.i("MyApp","Vibrate mode");
mobilemode.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mobilemode.setStreamVolume (AudioManager.STREAM_MUSIC,mobilemode.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);
break;
case AudioManager.RINGER_MODE_NORMAL:
Log.i("MyApp","Normal mode");
break;
}
Run Code Online (Sandbox Code Playgroud)
但它启用正常模式.但我不能增加音量.

请允许我以任何方式以编程方式增加音量..
每个人都建议遵循MVP或MVVM模式以保持代码的可读性和可测试性。现在我有疑问。现在,我正在学习单元测试,并以一种正式的方式编写代码。不使用任何模式。现在我的问题是,我可以像下面那样测试我的代码吗?
我的主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public boolean testMethod(int value){
return value== 5?true:false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试课:
@RunWith(MockitoJUnitRunner.class)
public class ExampleUnitTest {
MainActivity mainActivity = new MainActivity();
@Test
public void testMethod(){
boolean result = mainActivity.testMethod(5);
assertEquals(true,result);
}
}
Run Code Online (Sandbox Code Playgroud)
在运行测试时,我没有收到任何错误或问题。那么这是正确的测试方法吗?还是如果我遵循这种方法会发生什么?我也开始将代码迁移到MVP模式,但是我想清除我的疑问。请让我知道为什么我不遵循单元测试的正式编码的原因。
我想更改进度指示器的颜色。默认颜色为红色。如果我想将颜色更改为蓝色意味着我必须做什么。我找不到指示器颜色的任何属性。是否可以更改颜色?
<Grid Background="#7F000000" x:Name="ProgressGrid" Visibility="{Binding Path=IsVisible}">
<TextBlock HorizontalAlignment="Center" Margin="10,500,0,0" Height="100" Text="{Binding Path=AppResources.Label558, Source={StaticResource LocalizedStrings}}" FontSize="28" FontWeight="Bold" />
<ProgressBar IsIndeterminate="True" Width="383" Margin="0,500,0,0" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
请让我知道任何想法..
我想在打字时将编辑文本中的每个单词标题化.
我的XML: -
<com.project.edittext.AutoFitEditText
android:id="@+id/txt_name"
style="@style/scan_text_fields_white_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="@string/validation_accept_all_except_special_char"
android:fontFamily="sans-serif"
android:imeOptions="flagNoExtractUi|actionDone"
android:inputType="textNoSuggestions|textCapWords"
android:maxLength="50"
android:paddingBottom="3dp"
android:paddingLeft="12dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:singleLine="true"
android:textColor="@color/orange"
/>
Run Code Online (Sandbox Code Playgroud)
现在我正在使用
mName.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
Run Code Online (Sandbox Code Playgroud)
但问题是它在某些设备中不起作用.前LG平板电脑.所以我决定以编程方式执行此操作.
所以我使用以下代码.
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String mNameStr=s.toString();
String finalStr="";
if(!mNameStr.equals("")) {
String[] strArray = mNameStr.split("[\\s']");
if (strArray.length > 0) {
for (int i = 0; i < strArray.length; i++) {
finalStr+=capitalize(strArray[i]);
}
Logger.d("finalStr==> ", finalStr);
}
}
mName.setText(finalStr.toString());
}
private String capitalize(final String …Run Code Online (Sandbox Code Playgroud) 我想测试我的自定义组件 UI 渲染性能。我使用以下测试用例来检查渲染性能。
private long getLayoutTime(int layoutRes) {
final Context targetContext = getInstrumentation().getTargetContext();
final LayoutInflater layoutInflater = LayoutInflater.from(targetContext);
final long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
final View view = layoutInflater.inflate(layoutRes, null);
view.setLayoutParams(new ViewGroup.LayoutParams(0, 0));
view.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
final int measuredHeight = view.getMeasuredHeight();
final int measuredWidth = view.getMeasuredWidth();
view.layout(0, 0, measuredWidth, measuredHeight);
}
return System.currentTimeMillis() - startTime;
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我可以测试布局渲染时间。所以我改变了布局设计以获得更好的性能。现在我正在创建一个具有多个布局和组件(如图像、文本视图等)的自定义视图类。我将在运行时附加该类,组件将在运行时根据服务器响应创建。我不会在 XML 中附加此自定义组件。现在我想测试这个自定义视图的渲染性能。请建议我任何工具或任何方法来计算自定义视图的 UI 渲染时间。
我正在尝试为我的回收视图添加滑动功能。我正在按照此链接添加滑动操作。https://github.com/nikhilpanju/RecyclerViewEnhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/RecyclerTouchListener.java
在此链接中,我只能从右向左滑动。我想添加从左向右滑动。我尝试在onInterceptTouchEvent. 但我无法从左向右滑动。任何人都可以帮我添加从左向右滑动吗?
我试图在列表视图中获取所有TextView值。
我有一个ListView,没有N个列表项。
所有列表项都有增加和减少按钮。
如果单击增加按钮,则总数(TextView)值将增加。如果我单击减少按钮,总数(TextView)将减少。
现在,我想从列表中获取所有总计数值。
这是我的代码:
holder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View parentView = (View) v.getParent();
String getString = ((TextView) parentView.findViewById(R.id.counter)).getText().toString();
String totalAmtString = ((TextView) parentView
.findViewById(R.id.text1)).getText().toString();
int totAmount = Integer.parseInt(totalAmtString);
count = Integer.parseInt(getString);
count++;
tot_amt = totAmount * count;
countString = String.valueOf(count);
String TotAmt = String.valueOf(tot_amt);
((TextView) parentView.findViewById(R.id.counter))
.setText(countString);
((TextView) parentView.findViewById(R.id.totalPrice)).setText(TotAmt);
for(int i=0;i>data.size();i++){
// Here I want to get the all TotAmt every time i click Increase button.
}
}
});
Run Code Online (Sandbox Code Playgroud)
请让我有任何想法在列表视图中获取所有TextView值。
随函附上我的完整代码:
public class …Run Code Online (Sandbox Code Playgroud) android ×8
java ×2
android-view ×1
canvas ×1
image ×1
jobservice ×1
junit ×1
listview ×1
progress-bar ×1
swipe ×1
unit-testing ×1
volume ×1
xaml ×1