1
我試圖製作一個應用程序,當應用程序打開時,它會在後臺顯示不同的圖像,但是當我嘗試調用該方法時。我越來越error.I製作模糊圖像的API低於16這是我用什麼調用方法時發生錯誤
public class MainActivity extends AppCompatActivity {
int roll[]={R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6};
int number;
private final Paint mPaint = new Paint();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random num= new Random();
number=num.nextInt(6);
ImageView img =(ImageView)findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),roll[number]);
Bitmap blurredBitmap = blur(""+roll[number]);
img.setImageBitmap(blurredBitmap);
}
public Bitmap blur(final String pathToBitmap) {
final BitmapFactory.Options options = new BitmapFactory.Options();
final Bitmap normalOne = BitmapFactory.decodeFile(pathToBitmap, options);
final Bitmap resultBitmap = Bitmap.createBitmap(options.outWidth, options.outHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(resultBitmap);
mPaint.setAlpha(180);
canvas.drawBitmap(normalOne, 0, 0, mPaint);
int blurRadius = 12;
for (int row = -blurRadius; row < blurRadius; row += 2) {
for (int col = -blurRadius; col < blurRadius; col += 2) {
if (col * col + row * row <= blurRadius * blurRadius) {
mPaint.setAlpha((blurRadius * blurRadius)/((col * col + row * row) + 1) * 2);
canvas.drawBitmap(normalOne, row, col, mPaint);
}
}
}
normalOne.recycle();
return resultBitmap;
}
}
我在哪裏做錯了?我使用這種方法,因爲在谷歌大多數的模糊效果是不適用於API < 16.只是想知道我在代碼中做錯了什麼。
的[創建模糊透明背景效果](http://stackoverflow.com/questions/6795483/create-blurry-transparent-background-effect) –
正如我所提到可能的複製較早的項目是用於API <= 16那是主要原因 – SAVVY
是什麼問題?有沒有崩潰?是不是你所期望的結果圖像?請詳細說明實際結果。如果由此產生的圖像不好,請張貼圖像。如果發生故障,請顯示堆棧跟蹤。 –